现在的位置: 首页 > 综合 > 正文

Asp.net 中按钮的前台和后台事件

2013年10月15日 ⁄ 综合 ⁄ 共 739字 ⁄ 字号 评论关闭
今天遇到一个很奇怪的问题:
页面A中点"下一步",跳到页面B,
页面B的page_load中作了一个数据库操作,结果每次都发现页面B中的数据库操作执行了两次.(而不是一次)
我反复测试B页面,都没有问题.
后来发现,其实问题出在页面A.
美工作页面A的时候,给按钮加入的一段前台javascript事件,而我直接把这个按钮设置为服务器控件,然后家了一个后台事件.后台事件中,也包含了跳转这个页面的程序.形成如下代码:
  1.                                     <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),可以中止后台的程序运行.

抱歉!评论已关闭.