ASP.NET 多个提交按钮页面,ENTER指定执行某一按钮
在WEB页面上,通常SUBMIT类型的按钮会被默认指派为所在FORM表单的提交按钮 我们在做ASP.net WEB应用的时候,常常遇到会在同一个页面里添加多个按钮,而每个按钮肯定都会触发页面回送事件。 在ASP.NET中,只能指定一个带有RUNAT=SERVER的FORM表单,因此,这个表单会指派哪个按钮为默认提交按钮呢? 不做任何处理的情况下是很难控制的,例如在同一个页面里做了N个搜索框,设计上理想的思路是在某一输入框输入关键字后,用户按ENTER键,执行当前输入的输入框对应的提交按钮,但是,实际上往往事与愿违。无论怎么提交,总是会只执行某一个按钮事件。 网上很多方法都是使用JAVASCRIPT来进行判断,在输入框中加入KEYPRESS之类的事件,然后检查eventCode,如果是回车键,那么就指定执行某一个按钮。 这个方法不是不行,但是,并不好维护,而且在处理复杂的逻辑时,往往不好控制。 其实,ASP.NET给出了很好的解决方案,只是通常不被人注意。 首先,屏蔽浏览器提交模式,也就是说,FORM不再默认指定一个ENTER提交的按钮 方法是将BUTTON的UseSubmitBehavior设置为false,这样这个按钮就不会接受回车提交,这样就不会出现用户焦点在页面某处聚焦时按回车提交的情况。 为什么会这样呢?查看页面源文件我们会发现本来ASP