只有在页面准备好后才能加载ASP.Net Ajax UpdatePanel

时间:2012-06-27 09:36:29

标签: c# asp.net asp.net-ajax

我正在使用ASP.Net AJAX UpdatePanel加载页面的右侧部分。

由于该部分需要一些时间来加载,我想在加载页面的其他部分后加载它。

我可以使用普通AJAXASP.Net AJAX,但我选择使用后者,因为我想尝试一下。

我发现我的UpdatePanel总是被加载。

我希望它只在页面准备好后才能加载。

有人说要使用计时器,有人说要使用一些javascript。

但我仍然无法完成它。

所以,这些是我的两个障碍,在页面启动时停止加载并在页面准备就绪时开始加载

4 个答案:

答案 0 :(得分:0)

为什么不启用和禁用页面事件?例如。尝试在Page_PreLoad事件中,将更新面板的enable属性设置为False。在Page_LoadComplete事件中,将其设置回enabled = true

答案 1 :(得分:0)

UpdatePanels使用Ajax进行更新,而不是首次加载。

如果您希望在首次加载时快速加载,请避免任何昂贵的处理,加载数据库调用。把它们放在

if(IsPostBack)
{
  //your long processing
}

现在使用AsyncPostBackTrigger进行updatePanel回发。

答案 2 :(得分:0)

尝试使用此代码(条件模式+更新方法)

<asp:UpdatePanel ID="YourIdPanel" UpdateMode="Conditional"                                  runat="server">


//In order to force loading
YourIdPanel.Update();

答案 3 :(得分:0)

<script type="text/javascript">
    var currentItemID=$('#<%= labcurrentItemID.ClientID %>').html();
    if (currentItemID != null) {
        $(document).ready(function () { 
            $('#main_container').load('/Custom/Going%20Places/PopularRelatedArticle.aspx?currentID=' + currentItemID);
        });
    }
    else {
        $(document).ready(function () { 
            $('#main_container').load('/Custom/Going%20Places/PopularRelatedArticle.aspx?currentID={7F0811A7-D484-4675-8A23-0AEB235B9B5F}');
        });
    }
</script>