是这样的,我这里页面写出来这是为了演示,实际的情况是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中,这个执行相反,就得到了不同的结果。
以上是我的个人理解,分析下后台代码的执行顺序就能确认
慕运维8079593
TA贡献1876条经验 获得超5个赞
如果你两个按钮都是服务端控件的话,每个按钮的事件都会引起服务端的相应,引起页面的回传,这样的话,你用JS脚本出发单击事件的逻辑从根本上好像就行不通的吧,考虑下其他办法呢?
- 2 回答
- 0 关注
- 674 浏览
添加回答
举报
0/150
提交
取消