Postback时DataGrid.ItemCreated比Page.Load还要先执行!
this.DataGrid1.ItemCreated += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemCreated);
绑定后,第一次执行Page.Load会先于ItemCreated,当页面提交时,上面的DataGrid1_ItemCreated会先于页面其他方法,被先执行一次。再执行Load方法。
以下这类代码就会往往碰到麻烦
Control ctl = e.Item.FindControl("lblConfirm");
if(ctl !=null)
{
Batch batch = (Batch)e.Item.DataItem;
Label lbl = (Label)ctl;
lbl.Text = Batch.GetConfirmKindName(batch.ConfirmKind);
}
因为PostBack时e.Item.DataItem是空的!!PostBack时再次绑定数据ItemCreated会再一次执行。
if(ctl !=null)
{
Batch batch = (Batch)e.Item.DataItem;
Label lbl = (Label)ctl;
lbl.Text = Batch.GetConfirmKindName(batch.ConfirmKind);
}