目标:获取chkSelectAll。
HTML代码:datagrid中的一个columns,
<asp:TemplateColumn HeaderText="选择">
<HeaderTemplate>
<asp:CheckBox id="chkSelectAll" Runat="server" Text=""></asp:CheckBox>
</HeaderTemplate>
<ItemTemplate>
<asp:CheckBox id="delselect" Runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateColumn>
后台代码:
方法1:datagrid1.FindControl("chkSelectAll")
方法2:
foreach (DataGridItem i in dg.Items)
{
  if(i.ItemType == ListItemType.Item || i.ItemType == ListItemType.AlternatingItem)
  {
    System.Web.UI.WebControls.CheckBox chkSelectAll = (CheckBox)i.FindControl("chkSelectAll");
  }
}以上两种方法用过了,都不好使,高手们请指教!

解决方案 »

  1.   

    如果LZ想实现全选,用这个
                        <HeaderTemplate>
                            <asp:CheckBox ID="chkSelectAll" runat="server" Text="全选" onclick="javascript:SelectAll(this);"/>
                        </HeaderTemplate>
    <script>
    function  SelectAll(tempControl)  
    {  
         //将除头模板中的其它所有的CheckBox取反   var  theBox=tempControl;  
       xState=theBox.checked;             elem=theBox.form.elements;  
       for(i=0;i<elem.length;i++)  
       if(elem[i].type=="checkbox"  &&  elem[i].id!=theBox.id)  
       {  
           if(elem[i].checked!=xState)  
           elem[i].click();  
       }  

    </script>
      

  2.   

    foreach (DataGridItem i in dg.Items)
    {
      if(i.ItemType == ListItemType.Item || i.ItemType == ListItemType.AlternatingItem)
      {
        System.Web.UI.WebControls.CheckBox chkSelectAll = (CheckBox)i.FindControl("chkSelectAll");
      }
    }标题栏是ListItemType.Header吧,你这样当然找不到啦
      

  3.   

    获取标题栏里的CheckBox控件??
      

  4.   

    感觉上,你的使用方法不正确。DataGrid和DataTable等数据集绑定后,其显示的字段内容是想对应的。因此想取得dataGrid标题栏中的checkbox空间,只要取得对应的数据集字段内容即可。