我按这样添加复选框:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
CheckBox FieldCh = new CheckBox();
FieldCh.ID = "Field_" + Field.Id;
Panel1.Controls.Add(FieldCh);
}
}
但是当我尝试从表单中获取此复选框时:
foreach (Control item in FindControl("FieldForm").Controls)
{
if (item is Panel)
{
foreach (Control checkbox in item.Controls)
我找不到这个复选框:/这可能是runat = server的问题?我在Checkbox中找不到这个属性..
答案 0 :(得分:3)
如果你想在PostBack之后找到这个CheckBox(我假设的话),你需要重新创建它。尝试用if(!PostBack)
子句创建这个CheckBox(因此它也会在回发后重新创建):
protected void Page_Load(object sender, EventArgs e)
{
CheckBox FieldCh = new CheckBox();
FieldCh.ID = "Field_" + Field.Id;
Panel1.Controls.Add(FieldCh);
if (!IsPostBack)
{
// ....
}
}
答案 1 :(得分:1)
您必须使用Page_Load
甚至动态添加控件。
protected void page_load()
{
CheckBox FieldCh = new CheckBox();
FieldCh.ID = "Field_" + Field.Id;
Panel1.Controls.Add(FieldCh);
}
答案 2 :(得分:0)
您可以使用更好的方法找到您的控件
只需使用此
CheckBox chkBox = this.form1.FindControl("YourControlId") as CheckBox;