簡體   English   中英

以編程方式添加的復選框未找到

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM