<Asp:dataGrid.....>
<asp:TemplateColumn> <HeaderTemplate> <asp:CheckBox ID="chkAll" Runat="server" Text="All" OnCheckedChanged="chkAll_CheckedChanged2" AutoPostBack=True></asp:CheckBox> </HeaderTemplate>
</asp:TemplateColumn>
</asp:dataGrid>我在后台,CheckBox chkAll = (CheckBox)DataGrid1.FindControl("chkAll");
chkAll.Text = "全选";
都无法获取到这个控件ID。

解决方案 »

  1.   

    if e.itemtype == listitemtype.header
    {
    e.item.findcontrol...
    }
      

  2.   

    CheckBox ckball=null;
    foreach(datagriditem dgitem in dgrid.items)
    {
       ckball=(checkedbox)dgitem.findcontrol("ckball");
       if(ckball.checked==true)
      {//***拆行相应操作}
    }
      

  3.   

    foreach(datagriditem dgitem in dgrid.items)
    {
       ckball=(checkedbox)dgitem.findcontrol("ckball");
       ckball.Text = "全选";

    这个方法我试过了,会提示错误:未将对象引用设置到对象的实例。至于2楼的,用e.Item...那个,也是行不通的,也许只能找到从0行开始处的控件,而HeaderTemplate即表头的控件则是无法找到。