【发布时间】:2017-09-15 10:26:19
【问题描述】:
我有一个异步页面加载,它从 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>
但是,更新进度控件永远不会在页面加载或转发器排序或页面更改时显示。如何让它显示“正在加载”,直到所有数据都加载到转发器中?
【问题讨论】:
-
我已经有一段时间没有使用这个了,在你的 UpdatePanel 上尝试 UpdateMode="Always" 看看它是否有效。我倾向于记得必须这样做。
-
这并没有改变任何东西。我确实将
ClientIDMode="AutoID"放在页面顶部,为转发器添加了一个 AsyncPostBackTrigger,现在它在分页和排序时加载 UpdateProgress,而不是在页面加载时 -
单步执行,看起来在页面实际显示之前所有数据都已绑定和加载(我猜是因为Page_Load方法是异步的),但当然加载所有数据需要一段时间数据,因此我需要 UpdateProgress 控件
标签: asp.net vb.net repeater updateprogress