2

わかりました、これは奇妙なものです。

.netフレームワーク4を使用しています。updatepanel内に次のような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();

ページ全体が更新され、正しいサーバーイベントがトリガーされます。

ファイアバグコンソール内から同じコード行を発行すると、updatePanelだけが更新されます。

ChromeまたはIE9で同じページを読み込んだ場合、すべての場合で問題なく動作します。Firebugでデバッグすることにより、マウスによるクリックとコードによるクリックの違いを追跡し、Sys$WebForms$PageRequestManager$_doPostBackメソッドでその行を確認しました。

if (!this._postBackSettings.async)

異なります。asyncは、マウスでクリックするとtrueになり、コードをクリックするとfalseになります。

私はなぜこれが起こるのかについての考えがありません、そしてどんな助けも大いに感謝されます。

4

1 に答える 1

6

ページ全体の更新を停止するには、 を定義する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>
于 2012-10-02T15:06:07.887 に答える