Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > ASP .Net Datagrid Control > IPostBackDataHandler not working properly with DataGrid

Thread Tools

IPostBackDataHandler not working properly with DataGrid
Posts: n/a
Hello All,

I am having some difficulties with a user control implementing
IPostBackDataHandler when it is placed inside a datagrid.

I have created a user control (MyUserControl.ascx) containing 1 TextBox
that implements the IPostBackDataHandler.
I have also created a form (WebForm1.aspx) that contains 1 datagrid of
which the datagrid contains the above user control as specified in its

The purpose is to dynamically create one MyUserControl for each item in
the datasource for display and editing.

When the program is run and text is entered into MyUserControl's
textbox, the LoadPostData() of MyUserControl.ascx is called as
expected. But even though LoadPostData() returns true the
corresponding RaisePostDataChangedEvent() is not called.

Note: if I were to simply include the MyUserControl.ascx in
WebForm1.aspx, then both LoadPostData() and RaisePostDataChangedEvent()
of MyUserControl.ascx are called as expected.

Would someone give me some insight as to why this is not working ? Am
I missing a step somewhere ?

Attached is the bare essential code snippets to reproduce the problem.

<%@ Control Language="c#" AutoEventWireup="false"
Codebehind="MyUserControl.ascx.cs" Inherits="test.MyUserControl"
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>

public class MyUserControl : System.Web.UI.UserControl,
IPostBackDataHandler, INamingContainer
protected System.Web.UI.WebControls.TextBox TextBox1;

#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
// CODEGEN: This call is required by the ASP.NET Web Form Designer.

if (Page != null)

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
this.Load += new System.EventHandler(this.Page_Load);


public virtual bool LoadPostData(string postDataKey,
System.Collections.Specialized.NameValueCollection postCollection)
return true;

public virtual void RaisePostDataChangedEvent()

private void Page_Load(object sender, System.EventArgs e)

<%@ Register TagPrefix="f4c" TagName="MyUserControl"
Src="MyUserControl.ascx" %>
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs"
AutoEventWireup="false" Inherits="test.WebForm1" %>
<form id="Form1" method="post" runat="server">
<asp:datagrid id="dgListing" runat="server"
<f4c:MyUserControl id="MyUserControl1"
<asp:Button id="Button1" runat="server" Text="Button"></asp:Button>

public class WebForm1 : System.Web.UI.Page

private void Page_Load(object sender, System.EventArgs e)
//setup handlers
this.Button1.Click += new System.EventHandler(this.Button1_Click);

//setup datagrid
dgListing.DataSource = this.CreateDataSource();

private void Button1_Click(object sender, System.EventArgs e)

ICollection CreateDataSource()
DataTable dt = new DataTable();
DataRow dr;

dt.Columns.Add(new DataColumn("SomeColumn", typeof(Int32)));

for (int i = 0; i < 2; i++)
dr = dt.NewRow();
dr[0] = i;

DataView dv = new DataView(dt);
return dv;

Reply With Quote

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off

Similar Threads
Thread Thread Starter Forum Replies Last Post
IPostBackDataHandler not working properly with DataGrid ASP .Net Building Controls 8 08-19-2006 09:52 AM
ASP.Net Datagrid Not Working Properly mh ASP .Net Datagrid Control 0 06-19-2006 06:33 PM
asp:RadioButton in a asp:DataGrid not working properly RSB ASP .Net 0 09-15-2004 06:45 PM
Custom Control & System.Web.UI.IPostBackDataHandler.LoadPostData One Handed Man \( OHM - Terry Burns \) ASP .Net 1 06-17-2004 06:07 PM
Re: Help w/ IPostBackDataHandler Showjumper ASP .Net 0 06-24-2003 12:22 PM