我正在使用ASP.Net AJAX
UpdatePanel
加载页面的右侧部分。
由于该部分需要一些时间来加载,我想在页面的其他部分加载后加载它。
我可以使用正常的AJAX
,也可以使用ASP.Net AJAX
后者,因为我想尝试一下。
我发现我UpdatePanel
的总是加载。
我希望它仅在页面准备好后才加载。
有些人说要使用计时器,有些人说要使用一些javascript。
但我仍然无法完成它。
所以,这是我的 2 个障碍,在页面开始时停止加载并在页面准备好时开始加载
我正在使用ASP.Net AJAX
UpdatePanel
加载页面的右侧部分。
由于该部分需要一些时间来加载,我想在页面的其他部分加载后加载它。
我可以使用正常的AJAX
,也可以使用ASP.Net AJAX
后者,因为我想尝试一下。
我发现我UpdatePanel
的总是加载。
我希望它仅在页面准备好后才加载。
有些人说要使用计时器,有些人说要使用一些javascript。
但我仍然无法完成它。
所以,这是我的 2 个障碍,在页面开始时停止加载并在页面准备好时开始加载
为什么不启用和禁用页面事件?例如。尝试在 Page_PreLoad 事件中,将更新面板的启用属性设置为 False。在 Page_LoadComplete 事件中,将其设置回 enabled = true
UpdatePanels 使用 Ajax 进行更新,而不是在第一次加载时。
如果您希望它在第一次加载时快速加载,请避免任何昂贵的处理、加载时的数据库调用。把它们放在一个
if(IsPostBack)
{
//your long processing
}
现在使用AsyncPostBackTrigger进行 updatePanel 回发。
尝试使用此代码(条件模式 + 更新方法)
<asp:UpdatePanel ID="YourIdPanel" UpdateMode="Conditional" runat="server">
//In order to force loading
YourIdPanel.Update();
<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>