C# 从gridview C检索多个选中值
我想从我的gridview中的asp:checkbox检索多个选中值SID。对于所选记录,我想使用nhibernate执行删除功能。问题是,即使我选择了多条记录,我也只能从gridview中获得一个valueid。我的目标是删除gridview中的选中项。我的代码:C# 从gridview C检索多个选中值,c#,asp.net,nhibernate,C#,Asp.net,Nhibernate,我想从我的gridview中的asp:checkbox检索多个选中值SID。对于所选记录,我想使用nhibernate执行删除功能。问题是,即使我选择了多条记录,我也只能从gridview中获得一个valueid。我的目标是删除gridview中的选中项。我的代码: <ItemTemplate> <asp:Label ID="labelID" runat="server" Text='<%# Eval("Accountant") %>' /> </
<ItemTemplate>
<asp:Label ID="labelID" runat="server" Text='<%# Eval("Accountant") %>' />
</ItemTemplate>
<ItemTemplate>
<asp:CheckBox ID="cbDelete" runat="server" AutoPostBack="true"
oncheckedchanged="cbDelete_CheckedChanged" />
</ItemTemplate>
听起来您好像是从Page_Load中加载gridview,这很好。但在您的情况下,您需要确保gridview加载代码如下所示:
if(!Page.IsPostBack)
{
//gridview loading code
}
这可以防止在单击gridview复选框中的“删除”按钮时重新加载gridview并丢失选中的框单击“仅放置此代码并删除AutoPostBack=true oncheckedchanged=cbDelete_CheckedChanged”
//remove checked rows
protected void btn_removeall_Click(object sender, EventArgs e)
{
try
{
foreach (GridViewRow gr in grid.Rows)
{
CheckBox cc = (CheckBox)gr.FindControl("cbDelete");
if (cc.Checked == true)
{
string id = grid.DataKeys[gr.RowIndex].Values["ID"].ToString();
//
//call your delete function here
//
}
}
}
catch (Exception ex) { }
}
我得到了列表中返回的选中项的值。但Nhibernate似乎无法很好地加载和删除列表。this.accountary=Data.Instance.NHibernateSession.Loadlist尝试代码,因为我在回答中提供了u,不需要创建列表。。
if(!Page.IsPostBack)
{
//gridview loading code
}
//remove checked rows
protected void btn_removeall_Click(object sender, EventArgs e)
{
try
{
foreach (GridViewRow gr in grid.Rows)
{
CheckBox cc = (CheckBox)gr.FindControl("cbDelete");
if (cc.Checked == true)
{
string id = grid.DataKeys[gr.RowIndex].Values["ID"].ToString();
//
//call your delete function here
//
}
}
}
catch (Exception ex) { }
}