在我的网络应用程序中,我有一个包含加载栏的模态弹出窗口。我将其显示在任何我知道将需要几秒钟执行的命令上,按钮单击等。
除了一个复杂功能之外,目前工作正常,它运行的内部Web服务器非常糟糕,根据用户数量的不同,可以减慢导航到页面等简单任务的速度。
如果每次页面考虑做某事而不必对每个可能的场景进行硬编码,我怎样才能获得加载模式?
我的网络应用程序正在使用包含模态代码的母版页。
由于
脚本
function ShowLoading() {
$('#modalLoading').modal({ backdrop: 'static', keyboard: false, show: true });
}
function HideLoading() {
$('#modalLoading').modal('hide');
}
ASPX
<div id="modalLoading" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-body">
<h2>
Please Wait...</h2>
<div class="progress">
<div class="progress-bar progress-bar-striped active" role="progressbar" style="width: 100%">
</div>
</div>
</div>
</div>
</div>
</div>
C#Class
public void loadingAlert()
{
var page = HttpContext.Current.CurrentHandler as Page;
page.ClientScript.RegisterStartupScript(this.GetType(), "alert", "$(function () { ShowLoading(); });", true);
}
答案 0 :(得分:1)
在您的javascript中设置BeginRequestHandler
和EndRequestHandler
,如下所示:
$(document).ready(function () {
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
});
function BeginRequestHandler(sender, args) {
var postBackId = args._postBackElement.id;
// Here you can add some exceptions if you want
if (postBackId != "control_exception_1" && postBackId != "control_exception_2") {
ShowLoading();
}
}
function EndRequestHandler(sender, args) {
HideLoading();
}
最小的ASP.NET控件:form
runat服务器,ScriptManager
和UpdatePanel
。
您可以选择将UpdateMode
的{{1}}设置为UpdatePanel
(设置控件的ID以触发Conditional
中的UpdatePanel)或Triggers
(您可以删除Always
元素。
Triggers
答案 1 :(得分:0)
FORM SUBMIT
您必须使用button.label.set_markup(pangoMarkupString)
。
把它放在&#39; Page Init&#39;或者&#39; Page Render&#39;基类或主页中的事件,并使所有的aspx页扩展到这个基类。
AJAX请求
在这种情况下,您应该在Page.ClientScript.RegisterOnSubmitStatement(this.GetType(), "alert", "$(function () { ShowLoading(); });");
对象中附加jquery事件ajaxSend。把它放在你的母版页中:
document