[英]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.