0

我在母版页中有脚本管理器:

<asp:ScriptManager ID="ScriptManager1" runat="server" EnableScriptLocalization ="true" EnableScriptGlobalization ="true" EnablePartialRendering="true" >
</asp:ScriptManager>

MyPage.aspx(放置在母版页的内容占位符中)

<asp:UpdatePanel ID="upMain" runat="server" UpdateMode="Conditional" EnableViewState="true">
  <Triggers>
    <asp:AsyncPostBackTrigger ControlID="btnRefresh" EventName="Click" />
  </Triggers>
    <ContentTemplate>
        <asp:PlaceHolder ID="placeHolder1" runat="server" EnableViewState="true"></asp:PlaceHolder>
            </ContentTemplate>
</asp:UpdatePanel>

MyPage.aspx 脚本:

    $(document).ready(function () {
        setInterval(myfun, 20000);
    });

    function myfun() {
        var btn = document.getElementById('<%=btnRefresh.ClientID%>');
                    btn.click();
    }

在占位符上,我放置了包含用户控件的动态创建的表。在页面加载时,我可以看到页面上的用户控件。但是当 20 秒后调用异步回发时,我看不到用户控件。使用萤火虫,我看到用户控件在那里。但是它们不会被渲染;即使我在异步回发中再次创建它们。它们似乎是空的。帮助。

4

1 回答 1

1

试试这个代码。您需要在每个页面回发上创建控件。

protected void Page_Load(object sender, EventArgs e) 
{ 
     if (!Page.IsPostBack) 
      { 
           GetData(); // get data from database 
      } 
           LoadUserControls(); // Create dynamic table containing user controls 

} 

我认为你应该阅读这个。在 UpdatePanel 中动态加载 UserControl

于 2012-10-17T12:43:05.133 回答