ASP 异步页面加载的 UpdateProgress 控件

ASP UpdateProgress control on async page load

我有一个异步页面加载,它从 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>

但是,更新进度控件永远不会在页面加载时、转发器排序时或页面更改时显示。在转发器中加载所有数据之前,如何让它显示 "loading"?

我做错了。更新进度模式永远不会出现在异步页面加载中,因为它已经在页面呈现之前加载。因为它在分页和排序时回发,所以 UpdateProgress 出现了。

我的解决方案是在页面加载后异步加载它(因为它在更新面板中,它不会影响页面的其余部分),方法是使用一块 jQuery 单击 "trigger" 按钮在 $(document).ready(...) 上,然后关闭以获取 API 结果。这还将 UpdateProgress 设置为可见,结果加载完成后消失。