【问题标题】:Show modal/loading screen while gridview and AD query running on page load在页面加载时运行 gridview 和 AD 查询时显示模式/加载屏幕
【发布时间】:2015-04-14 14:10:16
【问题描述】:
我一直在网上查看大量示例,但它们似乎都与按钮或其他事件相关联。我有一个页面(默认)将数据加载到网格视图中,然后检查每条记录中的用户帐户以查看它是否存在于 AD 中。根据分阶段帐户的数量,这可能需要一分钟。我不在乎,但客户在加载时不希望出现空白屏幕。我知道这是可能的,但我未能从互联网上获得正确的代码。我知道这可能是多余的,但有人能指出我正确的方向吗?我在 VS 2010 中使用 C# ASP.NET。
谢谢
EFD
【问题讨论】:
标签:
gridview
modal-dialog
modalpopupextender
【解决方案1】:
您可以使用更新面板:
<asp:UpdatePanel ID="updatepanel" runat="server" updatemode="always">
<ContentTemplate>
code here...
</ContentTemplate>
</asp:UpdatePanel>
添加一个显示图像或“请稍候”文本的 div 和一个 Modal Popupextender 以显示该 div:
<div id="AlertDiv" class="Progress" style="display: none;">
<img alt="progress" src="images/progress.gif"/ height="40" width="40" />
</div>
<asp:Button ID="hidIsNewPageLoad" runat="server" style="display:none; " />
<asp:ModalPopupExtender
BackgroundCssClass="modalBackground"
runat="server"
PopupControlID="AlertDiv"
id="modalProgress"
TargetControlID = "hidIsNewPageLoad"
/>
最后,添加 Javascript 以在加载过程中显示/隐藏按钮:
function BeginRequestHandler(sender, args) {
$find('modalProgress').show();
}
function EndRequestHandler(sender, args) {
$find('modalProgress').hide();
}
$(document).ready(NewLoad);
function NewLoad()
{ Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
}