C# 在asp.net面板中查找控件

C# 在asp.net面板中查找控件,c#,asp.net,c#-4.0,C#,Asp.net,C# 4.0,如何使用c#从面板中查找控件。我使用下面的代码查找控件。但它总是返回null 我的部分代码如下: DropDownList ddl = new DropDownList(); ddl.ID = "ID" + i; ddl.DataValueField = "fld_Head"; ddl.DataTextField = "fld_Head"; ddl.DataSource = DVS; ddl.DataBind(); Panel1.Controls.Add(ddl); Panel1.Control

如何使用c#从面板中查找控件。我使用下面的代码查找控件。但它总是返回null

我的部分代码如下:

DropDownList ddl = new DropDownList();
ddl.ID = "ID" + i;
ddl.DataValueField = "fld_Head";
ddl.DataTextField = "fld_Head";
ddl.DataSource = DVS;
ddl.DataBind();
Panel1.Controls.Add(ddl);
Panel1.Controls.Add(new LiteralControl("  "));
另一个过程代码:

if (DT.Rows.Count > 0)
{
  string head = Convert.ToString(DT.Rows[i - 1]["fld_Head"]);
  if (head != "")
  {
    DropDownList Head = ((DropDownList)this.Panel1.FindControl("ID" + i));
                                Head.SelectedItem.Text = head;
  }
}

如果将一个控件作为子控件动态添加到另一个容器控件,则该控件在下一次返回同一容器子控件集合时将不可用。因此,您必须再次创建同一控件,分配其属性并再次添加到子控件集合。

如果您将控件作为子控件动态添加到另一个容器控件,则在下一次发回同一容器子控件集合时,该控件将不可用。因此,您必须再次创建同一控件,分配其属性并再次添加到子控件集合。

您确定已检查该控件是否确实存在于面板中吗?查看asp.net页面的页面源代码
FindControl
应该可以工作。是的,该控件存在于id为的“我的页面”中。是否在回发后尝试查找该控件?是否确实已检查该控件是否确实存在于面板中?查看asp.net页面的页面源代码
FindControl
应该可以工作。是的,id为的控件出现在我的页面中。您是否尝试在回发后查找该控件?当方法
FindControl
存在时,不必枚举面板中的所有控件。他可以通过枚举来验证控件的存在性,但这既不是找到控件的正确方法,也不是当前问题的解决方案。如果
FindControl
没有找到它,它将不在枚举中。感谢您的教育:)当我回答时,问题是“遍历控件”。现在它被编辑了,我看起来像个傻瓜:)虽然方法
FindControl
存在,但不需要枚举面板中的所有控件。他可以通过枚举来验证控件的存在性,但这既不是找到控件的正确方法,也不是当前问题的解决方案。如果
FindControl
没有找到它,它将不在枚举中。感谢您的教育:)当我回答时,问题是“遍历控件”。现在它被编辑了,我看起来像个白痴:)
Foreach Control c in Panel.Controls

    c.Name
    c.Id
    c.Whatever