如果多个页面使用了微软的AJAX框架,为了统一为所有UpdatePanel添加刷新遮罩效果,可以使用如下代码:
protected void Page_LoadComplete(object sender, EventArgs e) { if (IsAjaxRequest() == false) { List<UpdatePanel> updatePanels = this.Form.GetAllControls().OfType<UpdatePanel>().ToList(); string updatePanelsId = ""; foreach (UpdatePanel panel in updatePanels) { updatePanelsId += panel.ClientID + ";"; } try { this.Form.Attributes["updatePanelsId"] = updatePanelsId.Trim(';'); } catch { } } } /// <summary> /// 判断本次请求是否为AJAX请求【微软AJAX框架】 /// </summary> /// <returns></returns> protected bool IsAjaxRequest() { string micAjaxToken = Page.Request.Headers["X-MicrosoftAjax"]; string xhrToken = Page.Request.Headers["X-Requested-With"]; if ("Delta=true".Equals(micAjaxToken) && "XMLHttpRequest".Equals(xhrToken)) { return true; } return false; }
$(function () { initUpdateProgressPanel(); }); function initUpdateProgressPanel() { var updatePanelsId = $("form").attr("updatePanelsId"); if (updatePanelsId == undefined || updatePanelsId == null || updatePanelsId.length == 0) { return; } updatePanelsId = updatePanelsId.split(';'); $.each(updatePanelsId, function (i, item) { //id="ctl07" class="loadingbox" updatepanelid="UpdatePanel2" style="display: none;" var progressPanelId = 'progressPanel' + i; var progressPanel = $("<div id='" + progressPanelId + "' class='loadingbox' updatepanelid='" + item + "'><img src='/Images/loading.gif'></div>"); $("form").append(progressPanel); $create(Sys.UI._UpdateProgress, { "associatedUpdatePanelId": item, "displayAfter": 0, "dynamicLayout": true }, null, null, $get(progressPanelId)); var updatePanel = $("#" + item); matchUpdatePanelForProgress(updatePanel, progressPanel); updatePanel.resize(function () { var progressPanel = $(this).attr("id"); progressPanel = $("div[updatepanelId='" + progressPanel + "']"); matchUpdatePanelForProgress($(this), progressPanel); }); }); } function matchUpdatePanelForProgress(updatePanel, progressPanel) { var style = "display:none;opacity:0.5; -moz-opacity:0.5; filter:alpha(opacity=50);background-color:#aaccff;z-index:9999;position:absolute;width:" + updatePanel.width() + "px;height:" + updatePanel.height() + "px;"; style = style + "left:" + updatePanel.offset().left + "px;top:" + updatePanel.offset().top + "px;"; var img = $(progressPanel).find("img"); var imgMarginLeft = updatePanel.width() / 2 - 80; var imgMarginTop = updatePanel.height() / 2 - 10; img.attr("style", "margin-left:" + imgMarginLeft + "px;margin-top:" + imgMarginTop + "px"); $(progressPanel).attr("style", style); }
public static class ControlExtensions { public static IEnumerable<Control> GetAllControls(this Control ctrl) { foreach (Control c in ctrl.Controls) yield return c; foreach (Control c in ctrl.Controls) foreach (Control cc in GetAllControls(c)) yield return cc; } }
相关推荐
一,缩略图片点击放大有遮罩层,按原画尺寸放大,在次点击任意位置缩小的demo。 二,ajax 用于上传文件 或提交数据时防止重复加载的遮罩层js代码
微软ASP.NET AJAX框架剖析 大约在2006年年初,AJAX迅速成为Web 2.0开发中的一个热点,也成为开发以用户为中心的Web应用程序事实上的标准。然而,要开发出高质量的AJAX应用程序,首先要求开发者是一名JavaScript高手...
Ajax框架Ajax框架Ajax框架Ajax框架Ajax框架Ajax框架Ajax框架Ajax框架Ajax框架Ajax框架Ajax框架Ajax框架
页面加载中(遮罩层支持ajax、模拟查询、模拟保存、模拟导入、模拟隐藏、模拟刷新、全屏遮罩、兼容ie、谷歌、火狐等浏览器)2016.09.13.zip
json ajax ajax框架 json ajax ajax框架
Ajax加载外部页面的一个弹出层效果 ajax实现弹出层 简单实用
图片浏览(遮罩层的应用)
AJAX框架 v4.0 AJAX网站框架应用,AJAX网站集成,AJAX效果应用。
这是业余时间写的一个小例子 可以实现ajax提交 juqery validate插件表单验证 blockUI遮罩等待效果 可以学习使用
ajax框架项目ajax框架项目ajax框架项目ajax框架项目ajax框架项目ajax框架项目ajax框架项目ajax框架项目
jquery ajax框架jquery ajax框架jquery ajax框架jquery ajax框架jquery ajax框架
四种流行的AJAX框架.doc 四种流行的AJAX框架.doc四种流行的AJAX框架.doc 四种流行的AJAX框架.doc 四种流行的AJAX框架.doc
不用框架的Ajax不用框架的Ajax不用框架的Ajax不用框架的Ajax
ajax框架 AJAX_DWR
DWR AJAX框架(包含使用教程)DWR AJAX框架(包含使用教程)
JS变灰页面显示遮罩层登录窗口,使页面无法操作 JS变灰页面显示遮罩层登录窗口,使页面无法操作
.net 快速与ajax结合的框架 超级简单的ajax应用
当调用ajax需要不让用户点击别的按钮时调用此方法简单实用.
Ajax框架汇总 Ajax框架汇总 Ajax框架汇总 Ajax框架汇总
ajax框架,jquery技术。jquery是一个轻量级的JS框架,能帮助我们快速开发ajax框架。