dataSet1.Tables[0].ColumnChanged+= new System.Data.DataColumnChangeEventHandler(this.dataset1_ColumChanged);// dataSet1.Tables[0]是dataGrid的数据源;private void dataSet1_ColumChanged(object sender,System.Data.DataColumnChangeEventArgs  e)
{
if (e.Column.ColumnName == "你的CHECKBOX列名")
{
  //  你要执行的操作
}
}

解决方案 »

  1.   

    不好意思,我是WEB应用程序的。
      

  2.   

    我是这么写的:
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;namespace xiehuav2._0.doccard
    {
    /// <summary>
    /// showdoccate 的摘要说明。
    /// </summary>
    public class showdoccate : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.Button AddCateBtn;
    protected System.Web.UI.WebControls.DataGrid DataGrid1;
    protected System.Web.UI.WebControls.Label lblInfo;
    protected System.Web.UI.WebControls.TextBox CateCode;
            XieHua.DocumentCate myDocumentCate=new XieHua.DocumentCate() ; private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    Bind();

        string Cate=CateCode.Text;
    AddCateBtn.Attributes.Add("onclick","window.opener.document.adddocument.CateCode.value ='"+Cate+"'; window.close();"); } #region Web Form Designer generated code
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.AddCateBtn.Click += new System.EventHandler(this.AddCateBtn_Click);
    this.Load += new System.EventHandler(this.Page_Load);
    DataSet ds =myDocumentCate.GetDocumentCateDetail();//dataGrid的数据源
    ds.Tables[0].ColumnChanged+= new System.Data.DataColumnChangeEventHandler(this.ds_ColumChanged); }
    #endregion
    private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    DataGrid1.CurrentPageIndex = e.NewPageIndex;
    Bind();
    } private void Bind()
    {
    DataSet ds =myDocumentCate.GetDocumentCateDetail();
    //ds.Tables[0].DefaultView.Sort = ViewState["Sort"].ToString();
    lblInfo.Text = "共有:" + ds.Tables[0].Rows.Count.ToString()+"条记录";
    this.DataGrid1.DataSource = ds.Tables[0].DefaultView;
    this.DataGrid1.DataBind();
    } private void AddCateBtn_Click(object sender, System.EventArgs e)
    {

    }
    public void AllSelect()//全选CHECKBOX
    {
    bool tempbl;
    System.Web.UI.WebControls.CheckBox tempCK;
    tempCK=(System.Web.UI.WebControls.CheckBox)Page.FindControl("ckb_All");
    tempbl=tempCK.Checked;
    for(int i=0;i<DataGrid1.Items.Count;i++)
    {
    tempCK=(System.Web.UI.WebControls.CheckBox)DataGrid1.Items[i].FindControl("ckb_Select");
    tempCK.Checked=!tempbl;
    }
    }
    private void ds_ColumChanged(object sender,System.Data.DataColumnChangeEventArgs  e)
    {
    //Response.Write("abc");
    System.Web.UI.WebControls.CheckBox tempCK;
    tempCK=(System.Web.UI.WebControls.CheckBox)Page.FindControl("ckb_Select");
    if (e.Column.ColumnName == tempCK.ToString())
    {
    //  你要执行的操作
    //Response.Write("ok");
    }
    }


    }
    }没语法错误,可是一点都没反应。麻烦再帮我看看,还有,我全选也没反应,不胜感激!(再加30分)
      

  3.   

    在你的模版列ckb_Select加上
    OnCheckedChanged="check" AutoPostBack="True"
    例如:
    <asp:TemplateColumn HeaderText="contract">
    <ItemTemplate>
    <asp:CheckBox id="CheckBox1" runat="server" Width="161px"    
            OnCheckedChanged="check" AutoPostBack="True" >
    </asp:CheckBox>
    </ItemTemplate>
    </asp:TemplateColumn>同时:
    private void Page_Load(object sender, System.EventArgs e)
    {
    if(!this.IsPostBack)
    {
    Bind();
    .....
    }
    }在
    protected void check(Object Sender, System.EventArgs e)
    {
    Response.Write("执行了!");
            // 你的代码
    }