上篇文章 UseSubmitBehavior=true 即使通过 form onsumit 处理也无法有效实现完成提交前的灰化功能

让 ASP.NET 2.0 的 Sumbit Button 支持 禁用(灰化)提交曾想当然的认为可以在 form 的 onsumit 中 disable  input type=submit
让 ASP.NET 2.0 的 Sumbit Button 支持 禁用(灰化)提交注:ASP时代更常用此方案,可以同时对一个form具有多个提交按钮作出统一的“响应”
让 ASP.NET 2.0 的 Sumbit Button 支持 禁用(灰化)提交
让 ASP.NET 2.0 的 Sumbit Button 支持 禁用(灰化)提交经测试,发现虽然可以回发页面,但是却无法触发服务器端的 Click 事件。
让 ASP.NET 2.0 的 Sumbit Button 支持 禁用(灰化)提交

今天闲时无聊,根据上篇文章的分析,
让 ASP.NET 2.0 的 Sumbit Button 支持 禁用(灰化)提交原来,当点击 input type=submit 按钮时,如果其 disabled=false(正常状态),那么浏览器会同时提交此按钮
让 ASP.NET 2.0 的 Sumbit Button 支持 禁用(灰化)提交(Request.Form 集合中可以查询到此按钮的value),而 disabled=true(禁用),浏览不会提交此按钮的value。
让 ASP.NET 2.0 的 Sumbit Button 支持 禁用(灰化)提交而 ASP.NET 内部则检索是否有Request.Form中有对应的name匹配当然页面WebControl.UnquieID 来确定谁提交了改页面,由此引发注册的服务器事件。
让 ASP.NET 2.0 的 Sumbit Button 支持 禁用(灰化)提交
让 ASP.NET 2.0 的 Sumbit Button 支持 禁用(灰化)提交对于,input type=button ,浏览器永远都不提交此按钮给服务器,对于此类型提交,需要有一个隐藏域
让 ASP.NET 2.0 的 Sumbit Button 支持 禁用(灰化)提交input type=hidden name=__EVENTTARGET 来存储谁提交了此页面。
让 ASP.NET 2.0 的 Sumbit Button 支持 禁用(灰化)提交
硬是将其实现了,主要技巧是通过手动的添加了一个隐藏域其 name=__EVENTTARGET,并设置其 value=提交按钮.name,这样 ASP.NET 就可以识别哪个按钮执行的提交,进而引发注册的服务器端事件。

与直接设置 UseSubmitBehavior=false 相比,此方法反而显得有点繁琐。

测试代码:

下载

相关文章:

  • 2022-12-23
  • 2022-01-28
  • 2021-12-06
  • 2021-12-27
  • 2021-08-04
  • 2021-12-02
猜你喜欢
  • 2022-02-15
  • 2022-12-23
  • 2022-12-23
  • 2021-08-25
  • 2021-11-06
  • 2022-12-23
相关资源
相似解决方案