我写一个用户控件中有UpdatePanel,但要实现一个递归查找控件功能,但UpdatePanel的Controls集合始终为空?TemplateControlContainer.Controls也始终为空,如果用代码就能加入,但设计期的三个Grid始终找不到。
谁能帮忙解决下?

解决方案 »

  1.   

    UpdatePanel不知道能不能做为控件容器,
    但是可以在UpdatePanel中放个panel做为控件的容器。
      

  2.   

    updatepanel中放个panel,panel中放你的控件集合
        <form id="form1" runat="server">
        <div>
            <asp:ScriptManager ID="ScriptManager1" runat="server">
            </asp:ScriptManager>
        
        </div>
            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                    <asp:Panel ID="Panel1" runat="server" Height="50px" Width="125px">
                        <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
                        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                        <asp:Button ID="Button1" runat="server" Text="Button" />
                        <asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton></asp:Panel>
                </ContentTemplate>
            </asp:UpdatePanel>
            <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Button" />
        </form>    protected void Page_Load(object sender, EventArgs e)
        {    }
        protected void Button2_Click(object sender, EventArgs e)
        {
            foreach (Control ctl in Panel1.Controls)
            {
                Response.Write(ctl.ClientID.ToString());
            }
        }
      

  3.   

    不行,UpdatePanel在用户控件中,用户控件是动态加载的,加载后不能调用其中的事件操作Panel1,必须在外部实现FindControl方法。另外,ContentTemplateContainer集合在非动态加载的情况下是空的不信自己去试下。