好吧,这很奇怪。
我正在使用 .net 框架 4。我在更新面板中有一个 asp.net 按钮,如下所示:
<asp:Button id="btNacinMontaze" runat="server" class="buttonOIHidden" value="nm" CausesValidation="false" onclick="btNacinMontaze_Clicked" clientidmode="Static" UseSubmitBehavior="false"/>
如果我在浏览器中单击它,它会正常工作 - updatepanel 会自行更新而不刷新整个页面,会触发正确的服务器事件。
如果我在页面内这样做:
document.getElementById("btNacinMontaze").click();
整个页面刷新并触发正确的服务器事件。
如果我从 firebug 控制台中发出同一行代码,只会刷新 updatePanel。
如果我在 Chrome 或 IE9 中加载相同的页面,它在所有情况下都可以正常工作。我已经通过在 Firebug 中的调试跟踪了鼠标单击和代码单击之间的不同之处,并在方法中看到了Sys$WebForms$PageRequestManager$_doPostBack
这一行
if (!this._postBackSettings.async)
是不同的。async 在鼠标点击时为真,在代码点击时为假。
我不知道为什么会发生这种情况,非常感谢任何帮助。