无法在网络表单中找到复选框
Can't locate checkbox in webform
我想在我的网络表单上找到一个复选框,但找不到?它总是设置为 NULL?我尝试了不同的方法(i 是通过 FOR 循环设置的,我也在使用母版页):
CheckBox cb = (CheckBox)this.FindControl("ctl00_ContentPlaceHolder1_sa" + i.ToString());
CheckBox cb = (CheckBox)Page.FindControl("ctl00_ContentPlaceHolder1_sa" + i.ToString());
CheckBox cb = (CheckBox)Parent.FindControl("ctl00_ContentPlaceHolder1_sa" + i.ToString());
...以及...
CheckBox cb = (CheckBox)this.FindControl("sa" + i.ToString());
CheckBox cb = (CheckBox)Page.FindControl("sa" + i.ToString());
CheckBox cb = (CheckBox)Parent.FindControl("sa" + i.ToString());
有什么想法吗?
Findcontrol 使用 id,而不是客户端生成的 id(就像您的第一个代码块一样)。
在父对象上使用 Findcontrol(如果我是正确的,则并非总是必要)。如果复选框在页面主体上,请使用 Page.FindControl 或 this.FindControl。例如,当它在列表视图中时,请在适当的事件中使用它。
您可以试试这个代码:
foreach ( Control c in Panel1.Controls )
{
CheckBox cb = c as CheckBox;
if(cb!=null)
{
}
}
此处 Panel1 包含所有复选框..谢谢。
我将复选框放在面板中,并且能够按照@linuser Panel1.FindControl 访问它们。
感觉像是快速修复,但它确实有效。
我想在我的网络表单上找到一个复选框,但找不到?它总是设置为 NULL?我尝试了不同的方法(i 是通过 FOR 循环设置的,我也在使用母版页):
CheckBox cb = (CheckBox)this.FindControl("ctl00_ContentPlaceHolder1_sa" + i.ToString());
CheckBox cb = (CheckBox)Page.FindControl("ctl00_ContentPlaceHolder1_sa" + i.ToString());
CheckBox cb = (CheckBox)Parent.FindControl("ctl00_ContentPlaceHolder1_sa" + i.ToString());
...以及...
CheckBox cb = (CheckBox)this.FindControl("sa" + i.ToString());
CheckBox cb = (CheckBox)Page.FindControl("sa" + i.ToString());
CheckBox cb = (CheckBox)Parent.FindControl("sa" + i.ToString());
有什么想法吗?
Findcontrol 使用 id,而不是客户端生成的 id(就像您的第一个代码块一样)。
在父对象上使用 Findcontrol(如果我是正确的,则并非总是必要)。如果复选框在页面主体上,请使用 Page.FindControl 或 this.FindControl。例如,当它在列表视图中时,请在适当的事件中使用它。
您可以试试这个代码:
foreach ( Control c in Panel1.Controls )
{
CheckBox cb = c as CheckBox;
if(cb!=null)
{
}
}
此处 Panel1 包含所有复选框..谢谢。
我将复选框放在面板中,并且能够按照@linuser Panel1.FindControl 访问它们。
感觉像是快速修复,但它确实有效。