/*--------------------------------------------------------------- * AJAX请求管理对象。 ---------------------------------------------------------------*/ //在页面载入时,创建一个装载进度显示div。 $(document).ready(function() { }); //声明一个命名空间。 var AJAXManager = {}; AJAXManager.divLoading = null; //显示请求提示的层。 AJAXManager.postBackElement = null; //触发AJAX的对象。 AJAXManager.ajaxMessageTag = "AJAX_TAG_Message"; //AJAX提示的自定义标签。 AJAXManager.beginRequest = false; //AJAX是否正在请求。 //初始化相关对象。 AJAXManager.initElement = function() { $("body").append("
"); AJAXManager.divLoading = $("#AJAXManager_divLoading"); AJAXManager.divLoading.attr("class", "floatObject"); } //AJAX请求确认。 AJAXManager.ajaxRequestAllow = function() { //如果原有的请求未结束,返回。 if (AJAXManager.beginRequest) { alert("抱歉,上一个请求尚未结束,请稍后再试。"); return false; } return true; } //AJAX开始请求。 AJAXManager.beginRequestHandler = function(sender, args) { AJAXManager.postBackElement = $("#" + args.get_postBackElement().id); AJAXManager.displayLoadingInfo(); } //AJAX结束请求。 AJAXManager.endRequestHandler = function(sender, args) { AJAXManager.hideLoadingInfo(); if (args.get_error()) { // errorHandled - 异常是否已经被处理 args.set_errorHandled(true); // error - Error对象 alert("出错了!错误信息:" + args.get_error().message); } } //客户端请求。 //AJAXManager.postBackElement(触发ajax请求的对象) AJAXManager.clientBeginRequest = function(postBackElementID) { //AJAX请求确认。 if (!AJAXManager.ajaxRequestAllow()) return false; if (undefined != postBackElementID && null != postBackElementID) AJAXManager.postBackElement = $("#" + postBackElementID); AJAXManager.displayLoadingInfo(); return true; } //客户端结束请求。 AJAXManager.clientEndRequest = function() { AJAXManager.hideLoadingInfo(); } //显示进度等待信息。 AJAXManager.displayLoadingInfo = function() { AJAXManager.beginRequest = true; if (null == AJAXManager.divLoading) AJAXManager.initElement(); var message = "正在请求,请稍候..."; if (null != AJAXManager.postBackElement) { AJAXManager.postBackElement.attr("disabled", "disabled"); if (null != AJAXManager.postBackElement.attr(AJAXManager.ajaxMessageTag) && undefined != AJAXManager.postBackElement.attr(AJAXManager.ajaxMessageTag)) message = AJAXManager.postBackElement.attr(AJAXManager.ajaxMessageTag); } AJAXManager.divLoading.attr("innerHTML", message); AJAXManager.divLoading.show(); var locationX = $(window).width() - AJAXManager.divLoading.width() - 5; var locationY = 5; if (null != AJAXManager.postBackElement) { var offset = AJAXManager.postBackElement.offset(); var locationY = offset.top - 200; if (locationY < 5) locationY = 5; } AJAXManager.divLoading.css({ left: locationX + "px", top: locationY + "px" }); } //隐藏进度等待信息。 AJAXManager.hideLoadingInfo = function() { if (!AJAXManager.beginRequest) return; //表示当前AJAX请求结束。 AJAXManager.beginRequest = false; if (null != AJAXManager.divLoading) AJAXManager.divLoading.hide(); if (null != AJAXManager.postBackElement) AJAXManager.postBackElement.attr("disabled", ""); AJAXManager.postBackElement = null; } //解决URL重写后的异常。 Sys.Application.add_load(function() { if (null != Sys.WebForms) { var form = Sys.WebForms.PageRequestManager.getInstance()._form; form._initialAction = form.action = window.location.href; //实现AJAX请求和完成请求的事件。 Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(AJAXManager.beginRequestHandler); Sys.WebForms.PageRequestManager.getInstance().add_endRequest(AJAXManager.endRequestHandler); } });