<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDeleting="GridView1_RowDeleting" DataKeyNames="id" Oncheckedchange =cbkchange">
         <Columns>
             <asp:TemplateField>
              <ItemTemplate><asp:CheckBox ID="ckbHome" runat="server"  Checked='<%# Eval("home_show")%>' >
              </asp:CheckBox>
            </ItemTemplate>
           </asp:TemplateField>
       </Columns>
        </asp:GridView>
问题是后台的方法 怎么得到所选择行的 id 值!谢谢大家。

解决方案 »

  1.   

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowDeleting="GridView1_RowDeleting" DataKeyNames="id">
             <Columns>
                 <asp:TemplateField>
                  <ItemTemplate><asp:CheckBox ID="ckbHome" runat="server"  Checked='<%# Eval("home_show")%>' Oncheckedchange ="cbkchange">
                  </asp:CheckBox>
                </ItemTemplate>
               </asp:TemplateField>
           </Columns>
        </asp:GridView>
    修改一下!
      

  2.   

    你想哪个事件中取id,
    这个id是GridView中的数据行的id吗?
      

  3.   

    触发CheckBox 事件,想获得所在行的ID!
      

  4.   


     <Columns>
                                                    <asp:TemplateColumn HeaderText="&lt;input id=cbAll type=checkbox onclick='javascript:changeCheckValue();'&gt;&lt;/input&gt;">
                                                        <itemstyle wrap="False" horizontalalign="Center" cssclass="white"></itemstyle>
                                                        <itemtemplate>
    <INPUT id="selectID" type="checkbox" value='<%#DataBinder.Eval(Container.DataItem, "id").ToString()%>' 
     title='<%#DataBinder.Eval(Container.DataItem, "id").ToString()%>'  
       size='<%#DataBinder.Eval(Container.DataItem, "CollectionID").ToString()%>'
           runat="server" NAME="selectID">
           </itemtemplate>
                                                        <headerstyle wrap="False" horizontalalign="Center" width="3%"></headerstyle>
                                                    </asp:TemplateColumn>
     foreach (DataGridItem item in ListDataGrid.Items)
                    {
                        HtmlInputCheckBox chk = (HtmlInputCheckBox)item.FindControl("selectID");                    if (chk != null && chk.Checked)
                        {
                            //Response.Write(chk.Value.ToString() + "," + chk.Attributes["size"].ToString());
                            SetIsRemovedStatus(trans, ddlCustomerID.SelectedValue, chk.Value.ToString().Trim(), chk.Attributes["size"].ToString().Trim());
                        }
                    }
    给你一个我现在在用的。 我在里面是用的HTML控件,你也可以选择用ASP:CHECKBOX
      

  5.   

    其实就是当你选择了项以后 我们遍历每一个GRIDVIEWITEM,然后再每个GRIDVIEWITEM上面用FINDCONTROL找到GRIDVIEW上面的CHECKBOX控件,(记住FINDCONTROL找到的都是OBJECT类型的,你需要强制转换)
    然后 再判断CHECKBOX是否有选中,选中了你就可以去CHECKBOX一些属性的值,,比如你可以把你的ID放到CHECKBOX里面的VALUE里面,或者TOOLTIP里面
      

  6.   

    兄弟,你先试下吧,如果不行就加我QQ吧: 249786437..
    GOOD LUCK
      

  7.   

    飞鸟啊?不是你说的那样的!
    我想弄明白的是 比如:
       7行数据,每行都有一个 checkbox(有的被选,有的没被选) ,当单击任何一个 checkbox的时候,去触发后台的方法。
       在后台的方法中,怎么得到 该行的绑定的id!
       findControl 找的是7个checkbox 但是怎么能知道 我单击的是那个啊??
       
       
      

  8.   

    很 感谢飞鸟!
    解决方法是 把id绑定到checkbox 的 tooltip 属性里!
      

  9.   

    刚找的办法
    CheckBox checkbox = (CheckBox)sender;
    GridViewRow row = (GridViewRow)checkbox.NamingContainer;
    Label labId = (Label)GridView1.Rows[row.RowIndex].FindControl("labId");