Hi Oliver,
After some tests on my local side, seems the Event sequence are always as
we normally expected:
Contro's creation events ----> Page_Load/Control's Load events ---->
PostBack events
Also, below is my simple test page, which output
=============
dgEvent_ItemCreated get called!
dgEvent_ItemCreated get called!
dgEvent_ItemCreated get called!
Page_Load get called!
=============
you can also have a test on your side to see whether you still get the
strange event sequence.
=============aspx===========
<HTML>
<HEAD>
<title>datagridfooterevent</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema"
content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body>
<form id="Form1" method="post" runat="server">
<asp:DataGrid id="dgEvent" runat="server" AutoGenerateColumns="False"
ShowFooter="True">
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<asp:TextBox id=txtString Text="<%# Container.DataItem %>"
Runat="server">
</asp:TextBox>
</ItemTemplate>
<FooterTemplate>
<asp:DropDownList id="lstEvent" Runat="server" AutoPostBack="True"
OnSelectedIndexChanged="lstEvent_SelectedIndexChan ged">
<asp:ListItem Value="aaa">aaa</asp:ListItem>
<asp:ListItem Value="bbb">bbb</asp:ListItem>
<asp:ListItem Value="ccc">ccc</asp:ListItem>
<asp:ListItem Value="ddd">ddd</asp:ListItem>
</asp:DropDownList>
</FooterTemplate>
</asp:TemplateColumn>
</Columns>
</asp:DataGrid>
</form>
</body>
</HTML>
=====================
-===============codebehind=============
public class datagridfooterevent : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid dgEvent;
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
this.dgEvent.DataSource = new
string[]{"aaa","bbb","ccc","ddd","eee","fff"};
this.dgEvent.DataBind();
}
Response.Write("<br>Page_Load get called!");
}
//form generated code.................
protected void lstEvent_SelectedIndexChanged(object sender,
System.EventArgs e)
{
Response.Write("<br>lstEvent_SelectedIndexChanged get called!");
}
private void dgEvent_ItemCreated(object sender,
System.Web.UI.WebControls.DataGridItemEventArgs e)
{
Response.Write("<br>dgEvent_ItemCreated get called!");
}
}
Hope helps. Thanks,
Steven Cheng
Microsoft Online Support
Get Secure!
www.microsoft.com/security
(This posting is provided "AS IS", with no warranties, and confers no
rights.)