我有一个异步页面加载,它从API获取数据并将其绑定到更新面板内的转发器,与本地搜索结果分开。
母版页中有一个脚本管理器。
<div class="searchResultContainer" runat="server" id="divApiResults">
<div class="searchResult">
<asp:UpdatePanel ID="udpApiResults" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
<ContentTemplate>
<asp:UpdateProgress ID="updateProgress" DisplayAfter="1000" runat="server">
<ProgressTemplate>
<div id="lblLoadingApi" runat="server">
Loading...
</div>
</ProgressTemplate>
</asp:UpdateProgress>
<asp:Label runat="server" CssClass="label searchResultLabel" Text="EXTERNAL SEARCH RESULTS" />
<asp:Repeater ID="rptApiResults" runat="server">
<!-- template in here -->
</asp:Repeater>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</div>
但是,更新进度控件从不在页面加载时显示,也不会在转发器排序或页面更改时显示。如何让它显示&#34; loading&#34;直到所有数据都加载到转发器中?
答案 0 :(得分:0)
我做错了。更新进度模式将永远不会出现在异步页面加载上,因为它已在页面呈现之前加载。正如在UpdateProgress出现时进行分页和排序时回复的那样。
我的解决方案是在页面加载后异步加载它(因为它不会影响页面的其余部分,因为它不会影响页面的其余部分),通过使用一段jQuery来点击&#34 ;触发&#34; $(document).ready(...)
上的按钮,然后关闭以获取API结果。这也将UpdateProgress设置为可见,在结果加载完毕后消失了。