C# 从复选框获取GridView中的ID

C# 从复选框获取GridView中的ID,c#,asp.net,gridview,C#,Asp.net,Gridview,我有以下GridView- <ItemTemplate> <asp:CheckBox ID="CheckBox1" runat="server" OnCheckedChanged="checkButton_OnClick" AutoPostBack="true"/> </ItemTemplate> </asp:TemplateField> <asp:BoundField HeaderT

我有以下GridView-

<ItemTemplate>

         <asp:CheckBox ID="CheckBox1" runat="server" OnCheckedChanged="checkButton_OnClick"  AutoPostBack="true"/>

     </ItemTemplate>

  </asp:TemplateField>

        <asp:BoundField HeaderText="tID" DataField="tID" 
                        SortExpression="tID" HeaderStyle-CssClass = "hideGridColumn" ItemStyle-CssClass="hideGridColumn"></asp:BoundField>
        <asp:BoundField HeaderText="Name" HeaderStyle-HorizontalAlign=Center DataField="NAME" 
                        SortExpression="NAME" ItemStyle-HorizontalAlign=Center></asp:BoundField>

    </Columns>
我需要获取选中行的
tID
,我尝试了-

int tID = gvr.cells["tID"];

但是,这不起作用。

要获取当前行ID,请执行以下操作:gvr.ID。 但我不确定您是否真的想使用行ID或索引。 我猜您正在寻找类似的内容(考虑到索引1指的是“tID”边界字段):gvr.Cells[1].Text

foreach (GridViewRow gvr in table_example.Rows)
        {
            if (((CheckBox)gvr.FindControl("CheckBox1")).Checked == true)
            {
                //Here I need the tID of the row that is checked

int tID = Convert.ToInt32(gvr.Cells[1].Text);
                WebService1 ws = new WebService1();
                ws.addID(tID);
            }
        }

试试这个。

没有必要在checkButton\u OnClick事件上循环,您可以编写如下代码:

protected void checkButton_OnClick (object sender, EventArgs e)
    {
        CheckBox chk= (CheckBox)sender;
        GridViewRow gridViewRow = (GridViewRow)chk.NamingContainer;
        int rowindex = gridViewRow.RowIndex;
    }

这对你有用吗。。。如果它对你有帮助,请把它作为答案。
protected void checkButton_OnClick (object sender, EventArgs e)
    {
        CheckBox chk= (CheckBox)sender;
        GridViewRow gridViewRow = (GridViewRow)chk.NamingContainer;
        int rowindex = gridViewRow.RowIndex;
    }