我已经在DataGrid中绑定了列摸板checkbox,并给checkbox绑定了事件“Remove_CheckedChanged“
如下:
<asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 128px; POSITION: absolute; TOP: 48px" runat="server" AutoGenerateColumns="False" AllowSorting="True" DataKeyField="ID">
<Columns>
.
.
.
<ItemTemplate>
<asp:CheckBox id="CheckBox1" runat="server" OnCheckedChanged="Remove_CheckedChanged" AutoPostBack="True"></asp:CheckBox>
</ItemTemplate>”
.
.
Remove_CheckedChanged事件如下:
protected void Remove_CheckedChanged(object sender, EventArgs e)
{
......
}但是在这事件里我该怎么得到CheckBox选中的那一行DataKeyField="ID"的ID呢???
急啊!!!请各位高手帮帮忙了!

解决方案 »

  1.   

    for(int i=0;i<DataGrid1.Items.Count;i++)
    {
    CheckBox remove = (CheckBox) DataGrid1.Items[i].FindControl("Remove");
    if(remove.Checked==true)
    {}
    }
      

  2.   

    for(int i=0;i<DataGrid1.Items.Count;i++)
    {
      if(((CheckBox) DataGrid1.Items[i].FindControl("Remove")).Checked==true)
        {}
    }
    其实就是楼上的方法.嘿嘿。
      

  3.   

    如果你是要checkbox有autppostback,也就只有上面说的那种方法
      

  4.   

    不对,不是楼上所写的我的意思是当选中DataGrid中的任意一个checkbox时就触发Remove_CheckedChanged事件,并在这个事件里得到这个被选中的checkbox所对应的行的ID.
      

  5.   

    public void Remove_CheckedChanged(object sender, System.EventArgs e)
    {
    CheckBox cb = (CheckBox)sender;
    DataGridItem item = (DataGridItem)cb.NamingContainer;
    Response.Write(DataGrid1.DataKeys[item.ItemIndex].ToString());
    }
      

  6.   

    同楼上,当然还要设置checkbox的AutoPostBack为true