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" />

代码隐藏

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)
    {
        }
4

2 回答 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 属性设置为存储每条记录的主键。它还假设您将复选框放在第一列

于 2012-10-08T04:32:53.630 回答
2

设置 datakeys 使用 gridview 中的 datakeynames 属性

 <asp:GridView AllowSorting="true" AutoGenerateColumns="false" AllowPaging="true" 
        PageSize="10" DataKeyNames="MembershipNo"  
        ID="grdvw_showdetails" runat="server" CellPadding="4" 
于 2012-10-08T06:56:09.630 回答