我在gridview中动态添加了复选框在页面加载event.i想要在数据库中保存未选中的复选框值,但我没有动态添加复选框控件的值,它总是返回空值。
代码示例:
CheckBox chkQtyval1 = (CheckBox)gv.Rows[index].Cells[i].FindControl("chkCheckBox");
它返回一个空值。
背后的代码:
提前致谢
答案 0 :(得分:0)
每个动态添加的复选框都有一个自动分配的ID。
所以,在添加复选框时假设你在for循环中.... 创建复选框时,添加.ClientID = x;
然后当你想要使用控件时
CheckBox chkbox = (CheckBox)Use Gridview.Findcontrol(x);
if(chkbox!=null)
{
//Do Something
}
其中'x'是创建复选框ID时分配给的值。
注意:查找控件可能是片状的,所以我们使用的是循环遍历整个控制树(或只是其中的一部分),直到找到匹配为止。
public Static Control FindControlRecursive(Control root, string id)
{
if (root.ID == id)
{
return root;
}
foreach (Control c in root.Controls)
{
Control t = FindControlRecursive(c, id);
if (t != null)
{
return t;
}
}
return null;
}
控制根可以是Page,Master或Control(ike GridView)
第二个注意:这被标记为静态,因此您将其用作Class.FindControlRecursive() 或者完全删除静态引用以仅在单页中使用它