- Rongsen.Com.Cn 版权所有 2008-2010 京ICP备08007000号 京公海网安备11010802026356号 朝阳网安编号:110105199号
- 北京黑客防线网安工作室-黑客防线网安服务器维护基地为您提供专业的
服务器维护
,企业网站维护
,网站维护
服务 - (建议采用1024×768分辨率,以达到最佳视觉效果) Powered by 黑客防线网安 ©2009-2010 www.rongsen.com.cn
作者:黑客防线网安Ajax教程基地 来源:黑客防线网安Ajax教程基地 浏览次数:0 |
PageRequestManager是ASP.NET Ajax用来管理非同步Client的操作方式,前阵子为了避免网页重覆送出的问题,和同事们讨论之后,决定利用「盖玻璃」的方式,替整个网页加上一层透明的DIV,防止User重覆按下送出的动作。
因为整个网站是采用ASP.NET Ajax开发,所以大部份的资料更新动作都是透过update panel来执行;因此,在回到server前,ajax会先呼叫一次
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest()这个方法,等到update panel执行完成之后,会再呼叫一次
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(),所以可以透过这二个方式来达到效果建立及取消。
以下是截自官方网站的范例:
<script language="javascript" type="text/javascript"> Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(BeginRequestHandler); Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); function BeginRequestHandler(sender, args) { var elem = args.get_postBackElement(); ActivateAlertDiv('visible', 'AlertDiv', elem.value + ' processing...'); } function EndRequestHandler(sender, args) { ActivateAlertDiv('hidden', 'AlertDiv', ''); } function ActivateAlertDiv(visstring, elem, msg) { var adiv = $get(elem); adiv.style.visibility = visstring; adiv.innerHTML = msg; } </script> 不过为了让user一按下按钮就无法动作,所以效果开始这段我是写在button的onclientclick上面,再利用add_endRequest来取消效果。
1.先在网页上放置一个div
<div id="messageElement" class="busybox" style="font-size: 16px; font-family: Arial, Helvetica, sans-serif;"> <img alt="waiting" src="/App_Themes/images/indicator.gif" /> Please wait a moment... </div> 2.再来是javascript的动作
先取到整个body的大小,然后把div放到跟body一样大即可!
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); function EndRequestHandler(sender, args) { showBusyContainer(false); } function showBusyContainer(show) { if(show==true) { Sys.UI.DomElement.toggleCssClass(document.body, "HiddenSelect"); var bodyWidth = jQuery("body").outerWidth(); var bodyHeight = Math.max(jQuery("body").outerHeight(), jQuery(window).height()); var boxHeight = jQuery(".busybox").outerHeight(); jQuery(".overlay").show() .css({ width:bodyWidth, height:bodyHeight}); jQuery(".busybox").show() .css({ left: (bodyWidth - jQuery(".busybox").width()) / 2, position:"absolute", top:bodyHeight / 2 - boxHeight }); } else { jQuery(".overlay").hide(); jQuery(".busybox").hide(); jQuery("body").removeClass("HiddenSelect"); } }
我要申请本站:N点 | 黑客防线官网 | |
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479 |