转自:
ASP.NET AJAX里有一个UpdateProgress控件,它是用于 asp.net异步刷新时显示一个自定义的等待进度条,但是它有一个缺点,就是等待进度条的样式是静态的,换句话说就是一旦它的样式定好了,就不能改变 了,例如它的显示的位置top或left,如果我们根据浏览器窗口大小来动态居中显示这个UpdateProgress,要如何实现呢?正好微软的ASP.NET AJAX提供一个 javascript插口可以让我们自己重写这个进度条显示的方法,请看下面的代码:
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(function() { var loading = $(".loadingBar"); loading.css({ "top": (document.documentElement.clientHeight - loading.height()) / 2 + "px", "left": (document.documentElement.clientWidth - loading.width()) / 2 + "px"}); loading.show(); });
// Sys.WebForms.PageRequestManager.getInstance().add_beginRequest 这个就是注册事件的接口
上述代码相当重写了 ASP.NET AJAX 原来 UpdateProgress 的事件,这样,显示出来的自定义的等待进度条能自动判断当前浏览器窗口大小,通过调整进度条的位置,使之居中!
注:这些代码要放在ScriptManager控件之后。