繁体   English   中英

无法访问按钮单击C#复选框的值

[英]Can't access value of checkbox on button click c#

我将数据绑定到Page_Load中的gridview,然后在同一Page_Load中添加一列复选框,这些复选框不属于数据绑定。

然后,当按下按钮时,我要检查是否选中了任何框。 但是,当我在button_click方法中查找复选框时,这些复选框似乎完全消失了。

我在找他们

foreach (GridViewRow gvr in GridView1.Rows)
{
   CheckBox cb = (CheckBox)gvr.FindControl("check" + gvr.Cells[2].Text);
   ...
}

我有一种预感,他们可能会在回发时被销毁,但是我不确定如何确保这种情况不会发生。

Page_Load方法中的所有内容都包含在if(!IsPostBack)语句中。

一些要求我的page_load:

foreach (GridViewRow gvr in GridView1.Rows) {

  TableCell tc = new TableCell(); CheckBox cb = new CheckBox(); cb.ID = "check" + gvr.Cells[2].Text; tc.Controls.AddAt(0, cb); gvr.Cells.AddAt(0, tc); } 

我认为是相关的部分。

创建动态控件时,将创建它们的代码(即CheckBox)放在Page_Init而不是在Page_Load
您还应该仔细检查每个回发中复选框的创建顺序及其接收的ID是否相同。
如果由于某些原因gvr.Cells[2].Text在回发之间发生了变化,则您可能应该考虑使用更好的逻辑来标识复选框。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM