[ajax] 动态加载包含UpdatePanel控件,出现的疑惑
项目包含两个简单的文件,一个是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控件内容就消失了。为什么?
注意,在问题1.中,我用fiddler捕获浏览器通信,发现服务端有回来内容。但是内容是空的。