foreach(DataGridItem dgItem in this.myDataGrid.Items)
{
    ((CheckBox)dgItem.Cells[ColIndex].FindControl("CheckBox")).Checked == true;
}

解决方案 »

  1.   

    楼上的方法是可以的,不过不是很完全.
    1.首先设置headertemplate中的checkbox属性autopostback=true;
    2.在datagrid的itemcreated事件方法中,添加
    if(e.Item.ItemType == ListItemType.Item)
    {CheckBox headercheckbox=(CheckBox)e.Item.FindControl("CheckBox1");  
    headercheckbox.CheckedChanged +=new EventHandler(this.CheckBox1Change);  
    }
    3.然后在CheckBox1Change方法中添加楼上所说的处理方法.如下:
    private void CheckBox1Change(object sender, System.EventArgs e)
    {
    //楼上所说的方法.
    }
      

  2.   

    headercheckbox.CheckedChanged +=new EventHandler(this.CheckBox1Change); 
    未将对象引用设置到对象的实例。
      

  3.   

    呵呵,对不起噢,有一个地方写错了,是判断是不是header,我给写成了item,改过来就可以了
      

  4.   

    private void Button8_Click(object sender, System.EventArgs e)
    {
    System.Web.UI.WebControls.CheckBox chkExport ;
    if( cmdSelectAll.Text == "SelectAll")
    {
    foreach(DataGridItem oDataGridItem in DataGrid1.Items)
    {
    chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
    chkExport.Checked = true;
    }
    cmdSelectAll.Text = "NoSelectAll";
    }
    else
    {
    foreach(DataGridItem oDataGridItem in DataGrid1.Items)
    {
    chkExport = (CheckBox)oDataGridItem.FindControl("chkExport");
    chkExport.Checked = false;
    }
    cmdSelectAll.Text = "SelectAll";
    }
    }