遍历datagrid的items啊,然后在每个item中的相应cell中找到checkbox控件

解决方案 »

  1.   

    <script language="C#" runat="server">        void Page_Load(Object Sender, EventArgs E) {            if (!Page.IsPostBack) {               ArrayList values = new ArrayList();               values.Add ("IN");
                   values.Add ("KS");
                   values.Add ("MD");
                   values.Add ("MI");
                   values.Add ("OR");
                   values.Add ("TN");               myDataGrid.DataSource = values;
                   myDataGrid.DataBind();
                }
            }        void SubmitBtn_Click(Object sender, EventArgs e) {
             for(int i=0;i<myDataGrid.Items.Count;i++){
             CheckBox cb=(CheckBox)myDataGrid.Items[i].FindControl("chk");
             if(cb!=null&&cb.Checked)Label1.Text+=(i+" is seleted<br>");
             }
            }    </script></head>
    <body>    <h3><font face="宋体">数据绑定 DropDownList</font></h3>    <form runat=server>
        
            <asp:DataGrid id="myDataGrid" runat="server">
    <Columns>
       <Asp:TemplateColumn ItemStyle-BackColor="#f7f7f7" ItemStyle-HorizontalAlign="left" ItemStyle-VerticalAlign="top">
       <itemTemplate>
       <Asp:Checkbox runat="server" id="chk"/>
       </itemTemplate>
       </Asp:TemplateColumn>
    </Columns>
    </asp:DataGrid>
            <asp:button Text="提交" OnClick="SubmitBtn_Click" runat=server/>        <p>
            
            <asp:Label id=Label1 font-name="宋体" font-size="10.5pt" runat="server" EnableViewState="false"/>    </form></body>
    </html>
      

  2.   

    谢谢,但这是用服务器端脚本实现的。我把事件写入资源文件里面就不行了。我的代码:
    private void Delete_Click(object sender, System.EventArgs e)
      {
        for (int i=0;i<this.DataGrid1.Items.Count;i++)
        {
          CheckBox cb=(CheckBox)this.DataGrid1.Items[i].FindControl("CheckBox1");
          if(cb!=null&&cb.Checked==false)
          {
            Response.Write (i+" is seleted<br>");
          }
        }
      }结果是:此事件只对checkbox的初始设置有效,当选中一些checkbox或取消一些checkbox的选中,再按按钮,没有任何变化。怎么办?
      

  3.   

    for (int i=0;i<this.DataGrid1.Items.Count;i++)
        {
          CheckBox cb=(CheckBox)this.DataGrid1.Items[i].Cell[kk].Control[1]
          if(cb!=null&&cb.Checked==false)
          {
            Response.Write (i+" is seleted<br>");
          }
        }///kk是你的checkbox所在的列的index。
      

  4.   

    在DATAGRID中设置一个隐藏为表的关键字的列,当该列的checkbutton为选中的时候,就可以取出该列的关键字,然后根据该列的关键字进行操作。
      

  5.   

    你是没有加入
    if (!Page.IsPostBack)
    牙!
      

  6.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    if (!Page.IsPostBack)
    {
    string sql="select * from news"; SqlDataAdapter da=new SqlDataAdapter(sql,this.sqlConnection1);
    DataSet ds=new DataSet();
    da.Fill(ds);
    this.DataGrid1.DataSource=ds.Tables[0].DefaultView;
    this.DataGrid1.DataBind();
    }
    //this.Label1.Text=DataGrid1.Items[0].Cells.Count.ToString();
    }
    然后 private void Button1_Click(object sender, System.EventArgs e)
    {

    for (int i=0;i<DataGrid1.Items.Count;i++)
    {
    CheckBox cb=(CheckBox)DataGrid1.Items[i].FindControl("CheckBox1");
    if (cb!=null&&cb.Checked==true)
    { Response.Write(DataGrid1.Items[i].Cells[1].Text);
    }
    }
    }