GridView中有一列没绑定数据的摸板列,为checkbox列.我想在提交的时候,能取到checkbox的值,并且取到它所对应的行
所代表的数据库表中的ID值,请问该如何实现?我在它前边又加了一个选择列,前边的几列绑定到了一张表,通过选择列能够取到数据库表中的ID值

解决方案 »

  1.   


    GridViewRowCollection gvrc = gridview1.Rows; //假设gridview1 是你的Grid
    int subIndex = 0;
    foreach (GridViewRow row in gvrc)
    {
    CheckBox chkBox= row.FindControl("chkBox") as CheckBox //假设你等checkBox 的id是 chkBox
    if(chkBox.Checked)
    {
    //假设 gridview1 已经设置了一个为 ID 的 DataKeys、 DataKeys 可以放置一到多列数据的具体参考msdn
    int pID = (int)gridview1.DataKeys[row.RowIndex]["ID"]; 
    }
    }
      

  2.   

    你给chexkbox添加一个onclick事件,然后把取到数据库表中的ID值传过去..
    如<HeaderTemplate >
       <input type="checkbox" id="chkItems" onclick="ItemsChecked('ID');" />删除
      </HeaderTemplate>
      

  3.   

    多谢!取得ID已经成功了,但又有个问题
    点完checkbox之后的是哪个方法处理啊?我的代码如下
    <asp:TemplateField HeaderText=""> 
                        <ItemTemplate> 
                            <asp:CheckBox ID="chkBox" runat="server"/> 
                        </ItemTemplate>
    只发现有一个叫OnCheckChanged的事件,但好象不是
      

  4.   

    点完checkbox  以后,因为你没有PostBack,所以没有任何方法处理.统一到提交的时候一起做吧.
    如果一定需要点的时候先处理,就AutoPostBack吧(不推荐这种设计)