我在模板列里面定义了一个CheckBox控件<EditItemTemplate>
<asp:CheckBox ID="Lock" Runat="server" Text='锁定'></asp:CheckBox>
</EditItemTemplate>想在点击“编辑”后,根据程序判断来设定CheckBox的初始值。//Label LabLock1 = (Label)e.Item.FindControl("LabLock");//if ( LabLock1.Text == "1" )
//{
// ((CheckBox)e.Item.FindControl("CekBoxTLock")).Checked = true;
//}
//else 
//{
// ((CheckBox)e.Item.FindControl("CekBoxTLock")).Checked = false;
//}把这段代码写在MyDataGrid_Update里面不能正常运行。修改以后放在MyDataGrid_Edit里面也不能正常运行
在MyDataGrid_Edit里面用FindControl("CekBoxTLock")根本就找不到相应的控件。请教大虾该如何作这个判断?

解决方案 »

  1.   

    your checkbox's ID="Lock" and you are looking for "CekBoxTLock"?you should be able to find it in MyDataGrid_Update((CheckBox)e.Item.FindControl("Lock")).Checked = true;
      

  2.   

    应该判断CheckBox的checked属性,而不是看它有没有值.
      

  3.   

    to 思归如果把代码写在 MyDataGrid_Update 里面好像问题,如下:因为在只有在我点击“更新”的时候,才会执行MyDataGrid_Update里的代码,这个时候来判断ChechBox的状态,显然有问题。
      

  4.   

    why? because only at that time, your controls in "EditItemTemplate" are active, make sure your initial databinding is inside
    if(!IsPostBack)
    {
     //初始绑定
    }