我有一个Gridview.I放置每行的复选框。通过选中复选框并单击删除按钮,我应该在codebehind中获得该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)
{
}
答案 0 :(得分: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属性以存储每条记录的主键。它还假设您将复选框放在第一列
中答案 1 :(得分:2)
设置datakeys使用gridview
中的datakeynames属性 <asp:GridView AllowSorting="true" AutoGenerateColumns="false" AllowPaging="true"
PageSize="10" DataKeyNames="MembershipNo"
ID="grdvw_showdetails" runat="server" CellPadding="4"