获取Gridview中选定的行

4

我有一个GridView。我在每行上放置了复选框。通过选择复选框并单击删除按钮,我应该在代码后台中获取该GridView中所有已选择的行。请帮帮我...

<asp:GridView ID="GridView1" runat="server" BackColor="#DEBA84" 
        BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellPadding="3" 
        CellSpacing="2" style="margin-left: 58px; margin-top: 13px" >
          <RowStyle BackColor="#FFF7E7" ForeColor="#8C4510" />
          <Columns>
              <asp:TemplateField>
                  <EditItemTemplate>
                      <asp:CheckBox ID="CheckBox1" runat="server" />
                  </EditItemTemplate>
                  <ItemTemplate>
                      <asp:CheckBox ID="CheckBox1" runat="server" />
                  </ItemTemplate>
              </asp:TemplateField>
          </Columns>

    </asp:GridView>
    <asp:Button ID="Delete" runat="server" Text="Button"  runat="server" 
        onclick="Delete_Click" />

codebehind

protected void Button1_Click(object sender, EventArgs e)
    {
        string valueForDB = DatabaseList.SelectedValue;
        Data obj = new Data();
        if (valueForDB == "virtualworkplace")
        {
            obj.getDocforVirtualwrkspace(valueForDB);
            GridView1.DataSource = obj.getDocforVirtualwrkspace(valueForDB);
            GridView1.DataBind();
        }
What to write here???
 protected void Delete_Click(object sender, EventArgs e)
    {
        }

你能展示一下你目前的代码吗? - IrishChieftain
2个回答

3

试试这个

 private void DeleteRows()
 {
        foreach (GridViewRow row in gridView1.Rows)
        {
            HtmlInputCheckBox chk = (HtmlInputCheckBox) row.Cells[0].FindControl("selectedrowchk");
            if (chk != null && chk.Checked)
            {
                string id = gridView1.DataKeys[row.RowIndex].Value.ToString(); // get the record's ID of this row
                deleteRecord(id);
            }
        }

        //RefreshGrid();
    }

这段代码假设您将GridView的DataKeyNames属性设置为存储每个记录的主键。它还假设您将复选框放在第一列。


如何在 GridView 中设置 DataKeyNames? - user1618537
你如何在GridView中存储记录ID?它可以存储在隐藏字段中。 <asp:GridView DataKeyNames =“PrimaryKeyID”....> 其中PrimaryKey应替换为UserID,ProductID等。 - codingbiz

2

要设置数据键,请使用GridView的DataKeyNames属性。

 <asp:GridView AllowSorting="true" AutoGenerateColumns="false" AllowPaging="true" 
        PageSize="10" DataKeyNames="MembershipNo"  
        ID="grdvw_showdetails" runat="server" CellPadding="4" 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接