Asp.net 中按钮的前台和后台事件
2008-10-03 11:15
225 查看
今天遇到一个很奇怪的问题:
页面A中点"下一步",跳到页面B,
页面B的page_load中作了一个数据库操作,结果每次都发现页面B中的数据库操作执行了两次.(而不是一次)
我反复测试B页面,都没有问题.
后来发现,其实问题出在页面A.
美工作页面A的时候,给按钮加入的一段前台javascript事件,而我直接把这个按钮设置为服务器控件,然后家了一个后台事件.后台事件中,也包含了跳转这个页面的程序.形成如下代码:
<input style="MARGIN: 7px 0px 0px 30px" type="button" value="不满意,重新拍" name="Submit0" id="Button1" onserverclick="Button1_ServerClick" runat="server" /><input style="MARGIN: 7px 0px 0px 10px" type="button" value="OK,提交MM号确认照片" name="Submit1" id="Button2" onserverclick="Button2_ServerClick" runat="server" /></p>
这样以来,服务器就先执行了前台的跳转动作,又执行了后台的跳转动作,因此看起来就是B页面被执行了2次.
由此,可以看出前台事件和后台事件的关系是这样的:
1.有后台事件也不会屏蔽前台事件
2.前台事件优先执行.
后来我又深入研究了一下这个问题,发现在前台事件中,写入 return false;(IE6),或者 event.value=false(IE6,IE7),可以中止后台的程序运行.
页面A中点"下一步",跳到页面B,
页面B的page_load中作了一个数据库操作,结果每次都发现页面B中的数据库操作执行了两次.(而不是一次)
我反复测试B页面,都没有问题.
后来发现,其实问题出在页面A.
美工作页面A的时候,给按钮加入的一段前台javascript事件,而我直接把这个按钮设置为服务器控件,然后家了一个后台事件.后台事件中,也包含了跳转这个页面的程序.形成如下代码:
<input style="MARGIN: 7px 0px 0px 30px" type="button" value="不满意,重新拍" name="Submit0" id="Button1" onserverclick="Button1_ServerClick" runat="server" /><input style="MARGIN: 7px 0px 0px 10px" type="button" value="OK,提交MM号确认照片" name="Submit1" id="Button2" onserverclick="Button2_ServerClick" runat="server" /></p>
这样以来,服务器就先执行了前台的跳转动作,又执行了后台的跳转动作,因此看起来就是B页面被执行了2次.
由此,可以看出前台事件和后台事件的关系是这样的:
1.有后台事件也不会屏蔽前台事件
2.前台事件优先执行.
后来我又深入研究了一下这个问题,发现在前台事件中,写入 return false;(IE6),或者 event.value=false(IE6,IE7),可以中止后台的程序运行.
相关文章推荐
- ASP.Net点击按钮,先在前台弹框,然后响应后台事件的方法。
- ...后台代码中如何调用 javascript 函数的问题! - ASP.NET专题(按钮事件中调用JS文件中函数)
- asp.net中按钮的后台点击事件怎样才能打开一个对话框?(ext中的window)
- [置顶] 【Asp.net】前台的Html控件向后台传值以及前台的html的input按钮如何调用后台的方法
- asp.net 用了scriptmanager之后,后台弹框,走前台事件
- ...后台代码中如何调用 javascript 函数的问题! - ASP.NET专题(按钮事件中调用JS文件中函数)
- ASP.NET后台代码方式识别页面“按钮点击”和浏览器F5“刷新”事件
- asp.net 后台按钮事件弹出新页而不被阻止
- asp.net中的后台按钮如何先执行前台验证再执行后台代码
- ASP.NET后台代码方式识别页面“按钮点击”和浏览器F5“刷新”事件
- ASP.NET 点击前台服务器按钮后, 刷新. 重新执行 按钮事件
- asp.net 后台按钮事件弹出新页而不被阻止
- Asp.net 后台绑定数据,前台没有反应的灵异事件. 八成有UpdatePanel 造成.
- asp.net 点击服务器按钮 不触发后台事件解决方法
- 为后台控件注册前台事件[Asp.Net]
- ASP.NET前台使用__doPostBack函数调用后台事件
- ASP.NET后台代码方式识别页面“按钮点击”和浏览器F5“刷新”事件
- asp.net中的后台按钮如何先执行前台验证再执行后台代码
- asp.net 点击服务器按钮 不触发后台事件解决方法
- asp.net js 提交到后台特定按钮事件