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会再一次执行。

你可能感兴趣的:(datagrid)