为了账号安全,请及时绑定邮箱和手机立即绑定

button执行执行另一个button后台事件,并执行自己的后台事件

button执行执行另一个button后台事件,并执行自己的后台事件

MMTTMM 2018-11-21 20:14:55
是这样的,我这里页面写出来这是为了演示,实际的情况是Button1和Button2在不同的用户控件中,通过页面动态加载进来,所以你不要发表出在Button1_Click写Button2_Click(null,null);这样的回答代码:<asp:Button ID="Button1" runat="server" Text="Button1"    onclick="Button1_Click" /><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>  <asp:Button ID="Button2" runat="server" Text="Button2"    onclick="Button2_Click" /><asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>$(function() {  $("#Button1").bind("click", function() {  document.getElementById("Button2").click();  });  });protected void Button1_Click(object sender, EventArgs e)  {  TextBox1.Text = new Random().Next(10000).ToString();  }  protected void Button2_Click(object sender, EventArgs e)  {  TextBox2.Text = new Random().Next(10000).ToString();  }就是单击Button1的时候,执行Button2的后台事件后,再执行Button1的后台事件我现在是这样写的, 不同的浏览器运行效果还不一样呢Firefox和Chrome执行了 Button2_ClickIE执行了Button1_Click是什么原因呢,有没有办法在js中调用Button2的后台事件,执行Button2的后台事件,也执行Button1的后台事件
查看完整描述

2 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

你可以监控下生成的HTML代码,看下具体的执行。

 

BUTTON1和BUTTON2都是RUNAT=SERVER的,所以,在执行它们的CLICK事件的时候,都会提交到服务器(POSTBACK)。

区别应该是两种浏览器的处理方式。

在FF中,执行BUTTON1的CLICK时,会先执行绑定的函数体,再执行.NET生成的代码,这样,BUTTON2“被”CLICK后POSTBACK,此时,原来的BUTTON1的CLICK事件就被忽略了(页面刷新了)

而到了IE中,这个执行相反,就得到了不同的结果。

 

以上是我的个人理解,分析下后台代码的执行顺序就能确认


查看完整回答
反对 回复 2018-11-25
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

如果你两个按钮都是服务端控件的话,每个按钮的事件都会引起服务端的相应,引起页面的回传,这样的话,你用JS脚本出发单击事件的逻辑从根本上好像就行不通的吧,考虑下其他办法呢?

查看完整回答
反对 回复 2018-11-25
  • 2 回答
  • 0 关注
  • 674 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信