注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

汇总技巧

你快乐我快乐.... 汇集各类技巧,传播技巧,让我们共同熟练运用技巧..

 
 
 

日志

 
 

ASP.Net1.x中__doPostBack实现的问题  

2011-06-05 20:54:55|  分类: ◆ASP技巧 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
 

ASP.Net 1.x的client side postback script是这样的:
!--
function __doPostBack(eventTarget, eventArgument) {
 var theform;
 if (window.navigator.appName.toLowerCase().indexOf("netscape")  -1) {
 theform = document.forms["Form1"];
 }
 else {
 theform = document.Form1;
 }
 theform.__EVENTTARGET.value = eventTarget.split("$").join(":");
 theform.__EVENTARGUMENT.value = eventArgument;
 theform.submit();
}
// --
它是通过form.submit()去submit的。这样就有一个问题,form.onsubmit事件不会被触发,这么一来可能有些client side validation script就被绕过了。在ASP.Net 2.0里,这个问题被fix了。对于ASP.Net 1.x,据我所知,SP1也没有解决这个问题。我们可以使用下面的代码解决这个问题:
string myDoPostBack = 
">@"
script language=""javascript""
!--
function __myDoPostBack(eventTarget, eventArgument) {
 var theform;
 if (window.navigator.appName.toLowerCase().indexOf(""netscape"")  -1) {
 theform = document.forms[""Form1""];
 }
 else {
 theform = document.Form1;
 }
 theform.__EVENTTARGET.value = eventTarget.split(""$"").join("":"");
 theform.__EVENTARGUMENT.value = eventArgument;
 if ((typeof(theform.onsubmit) == ""function"")  theform.onsubmit()!=false) {
 theform.submit();
 }
}
__doPostBack = __myDoPostBack
// --
/script";
RegisterStartupScript("myDoPostBack", myDoPostBack);

  评论这张
 
阅读(77)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017