none
动态加载包含UpdatePanel控件,出现的疑惑 RRS feed

  • 问题

  • 项目包含两个简单的文件,一个是aspx页面,一个是ascx控件。

    aspx上有一个updatepanel,内部有一个按钮,点击后用于加载ascx控件到updatepanel内。

    ascx内也有一个updatepanel有一个按钮。

     

    Default.aspx,包含一个外部的UpdatePanel,代码如下:

    <script runat="server">
    
     protected void Button1_Click(object sender, EventArgs e)
    
     {
    
      Control ctl = Page.LoadControl("TestUserControl.ascx");
    
      pnl1.Controls.Add(ctl);
    
     }
    
    </script>
    
    ...
    
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    
    	<ContentTemplate>
    
    		外部最后刷新:<%=DateTime.Now.ToString() %>
    
    		<!--按钮:点击后动态添加一个ascx控件-->
    
    		<asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />
    
    		
    
    		<asp:PlaceHolder ID="pnl1" runat="server"/>
    
    	</ContentTemplate>
    
    </asp:UpdatePanel>
    
    ...
    
    

    TestUserControl.ascx,被动态加载,包含一个UpdatePanel,代码如下:

    <asp:UpdatePanel ID="UpdatePanel2" runat="server">
    
    	<ContentTemplate>
    
    		内部最后刷新:<%=DateTime.Now.ToString() %>
    
    		<asp:Button ID="Button2" runat="server" Text="Button" />
    
    	</ContentTemplate>
    
    </asp:UpdatePanel>
    
    

     

    问题两个:

    1. 加载完成后,ascx内部的按钮,第一次点击,页面无任何反应。为什么?

    2. 第二次点击后,ascx控件内容就消失了。为什么?

    2010年4月30日 9:03

答案

全部回复