[英]Checkbox added programmatically not found
我這樣添加復選框:
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中找到這個屬性..
如果你想在PostBack之后找到這個CheckBox(我假設的話),你需要重新創建它。 嘗試用if(!PostBack)
子句創建這個CheckBox(因此它也會在回if(!PostBack)
后重新創建):
protected void Page_Load(object sender, EventArgs e)
{
CheckBox FieldCh = new CheckBox();
FieldCh.ID = "Field_" + Field.Id;
Panel1.Controls.Add(FieldCh);
if (!IsPostBack)
{
// ....
}
}
您必須使用Page_Load
甚至動態添加控件。
protected void page_load()
{
CheckBox FieldCh = new CheckBox();
FieldCh.ID = "Field_" + Field.Id;
Panel1.Controls.Add(FieldCh);
}
您可以簡單地使用更好的方法來查找您的控件
只是用這個
CheckBox chkBox = this.form1.FindControl("YourControlId") as CheckBox;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.