当从javascript调用时,UpdatePanel中的asp.net按钮会导致Firefox 15.0.1中的整个页



好吧,这是一个奇怪的问题。

我使用的是.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在鼠标单击时为true,在代码单击时为false。

我不知道为什么会发生这种情况,我们非常感谢您的帮助。

您应该定义一个AsyncPostBackTrigger来停止整个页面刷新。

<asp:UpdatePanel runat="server" ID="UpdatePanel1" UpdateMode="Conditional">
   <ContentTemplate>
     <asp:Label ID="label" runat="server"></asp:Label>
   </ContentTemplate>
   <Triggers>
     <asp:AsyncPostBackTrigger ControlID="btNacinMontaze" EventName="Click" />
   </Triggers>
 </asp:UpdatePanel>

最新更新