C# 复选框在按钮单击gridview时消失

C# 复选框在按钮单击gridview时消失,c#,datagridview,webforms,C#,Datagridview,Webforms,我在gridview中填充了一个复选框,如下所示: protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType != DataControlRowType.Header) { e.Row.Cells[ColumnSelect].Controls.Add(new System.Web.UI.WebControls.CheckBox()); }

我在gridview中填充了一个复选框,如下所示:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
 {
   if (e.Row.RowType != DataControlRowType.Header)
  {
    e.Row.Cells[ColumnSelect].Controls.Add(new System.Web.UI.WebControls.CheckBox());
 }
}
但是,当我单击表单上的任何按钮时,复选框控件在我确定单击了哪些按钮之前就消失了。如何保存该信息? 谢谢
Diana

这些控件需要在
加载时每次重新创建。简言之,ASP.NET应用程序中的动态控件在回发时将不存在。您需要创建一个存储在
会话中的
列表
,并使用该列表
加载中重建这些控件

这些控件需要
加载时每一次都重新创建一次。简言之,ASP.NET应用程序中的动态控件在回发时将不存在。您需要创建一个
列表
,存储在
会话
中,并使用该列表在
加载
中重建这些控件。请在将此代码放入页面加载方法后重试:if(IsPostBack){gridview 1_RowDataBound(sender,e);}嗨,这不起作用,给我这个错误:错误参数2:无法从'System.EventArgs'转换为'System.Web.UI.WebControl.GridViewRowEventArgs'@Dianna抱歉,我刚刚注意到你函数的第二个参数。你可以借助解决方案的答案。这个想法是一样的,你必须再次在加载中构建控件。在页面加载事件中,控件已经消失,所以我无法判断它是否已被选中。那么我怎样才能得到这些信息呢?在把这段代码放到页面加载方法中之后试试:如果(IsPostBack){GridView1_RowDataBound(sender,e);}嗨,那不行,给我这个错误:错误参数2:无法从'System.EventArgs'转换为'System.Web.UI.WebControl.GridViewRowEventArgs'@Dianna抱歉,我刚刚注意到你函数的第二个参数。你可以借助解决方案的答案。这个想法是一样的,你必须再次在加载中构建控件。在页面加载事件中,控件已经消失,所以我无法判断它是否已被选中。那么我怎样才能得到这些信息呢?嗨,你能给我发一个链接来解释如何用代码来实现吗?谢谢,我正试图将其存储在一个列表中,但一旦我按下按钮,控件就会消失,它不再存在于onload方法中,因此如何才能捕获它是否已被选中!当我单击按钮时,似乎没有任何时刻控件仍然存在。我通过添加复选框作为模板而不是编程方式解决了这一问题。嗨,你能给我发送一个链接,说明如何在代码中这样做吗?谢谢,我正试图将其存储在一个列表中,但一旦我按下按钮,控件就会消失,它不再存在于onload方法中,因此如何才能捕获它是否已被选中!当我单击按钮时,似乎没有任何时刻控件仍然存在。我通过添加复选框作为模板而不是通过编程解决了这个问题