SongKer 发布时间:2014-07-14 分类:.NET 阅读:5502次 添加评论
三种处理方法:使用到UpdatePanel控件,JS弹出层,以及弹出处理页。基本方法一样,实现的方式不一样。第一种方法是用到UpdatePanel,需要VS2008以上的支持。下面是方法及代码:
第一种:使用到UpdatePanel控件,将JS代码放在ContentPlaceHolder 下面(具体代码:http://msdn.microsoft.com/zh-cn/library/bb311028.aspx),可将该方法应用到MasterPage模板页。
if (typeof Sys != "undefined") { Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest( function (sender, e) { $("#loading").show(); } ); Sys.WebForms.PageRequestManager.getInstance().add_endRequest( function (sender, e) { UpdateAudit(); $("#loading").hide(); } ) }
function UpdateAudit() { $(document).ready(function () { $.ajax({ url: "../../ASHX/getAuditNum.ashx", async: false, type: "POST", success: function (data) { var auditnum = document.parentWindow.parent.banner.document.getElementById("auditnum"); if (auditnum != null) { if (data != "") { auditnum.innerText = data } } }, error: function () { alert("error"); } }); }); }
HTML代码:
<div id="loading" style="display: none; width: 100px; height: 40px; margin: -20px 0 0 -50px; text-align: center; position: absolute; top: 50%; left: 50%"> <img src="../../Images/loading2.gif" width="25" style="float: left;" /> <span style="line-height: 30px;color:SeaGreen; font-weight: bold;">正在处理中..</span> </div>
第二种方法:可以做个公用的用户控件,copy如下html代码。后台有处理时调用相应JS方法隐藏或显示弹出层。
<div id='doing' style='Z-INDEX: 12000; LEFT: 0px; WIDTH: 100%; CURSOR: wait; POSITION: absolute; TOP: 0px; HEIGHT: 100%'> <table width='100%' height='100%' id="Table1"> <tr align='center' valign='middle'> <td > <table id="Table2" class="loading"> <tr align='center' valign='middle'> <td>Loading...</td> </tr> </table> </td> </tr> </table> </div>
<script language="javascript"> function ShowWaiting() { document.getElementById('doing').style.visibility = 'visible'; } function CloseWaiting() { document.getElementById('doing').style.visibility = 'hidden'; } function MyOnload() { document.getElementById('doing').style.visibility = 'hidden'; } if (window.onload == null) { window.onload = MyOnload; } </script>
2。在页面中拖入用户控件
3。在页面中给button加客户端click方法,如下。也可以在前台直接添加onclick属性
protected void Page_Load(object sender, EventArgs e) { this.Button1.Attributes.Add("onclick", "ShowWaiting();"); }
第三种方法:与上面类似,将弹出层改为弹出一个处理页面processwin.aspx。
第一个页面比如first.aspx加入以下js:
<script language="javascript"> var _tt; function showSending() { _tt=window.open("processwin.aspx",'uploadfileprocess',"toolbar=0,location=0,directories=0,status=0, menubar=0,scrollbars=1,resizable=1,top=" dispHeight ",left=" dispWidth ",width=410,height=200",true); return true; } function closewin() { if (_tt!=null) { _tt.close(); } } </script>
<body bgColor="silver" onunload="closewin();">
然后,后台代码first.aspx.cs
page_load()时,检索按钮加入如下属性:
btFileUpload.Attributes.Add("onclick","return showSending()");
processwin.aspx页面就是你要的中间页了,上面写上“等待...”或者“loading..”
上一篇:新浪SAE平台活动充值小漏洞
下一篇:CSS3新特性网页使用自己的字体
发表评论:
◎欢迎您的参与讨论。