C# 从gridview C检索多个选中值

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") %>' /> </

我想从我的gridview中的asp:checkbox检索多个选中值SID。对于所选记录,我想使用nhibernate执行删除功能。问题是,即使我选择了多条记录,我也只能从gridview中获得一个valueid。我的目标是删除gridview中的选中项。我的代码:

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