0

UpdatePanel を含む ASP.NET フォームがあります。その UpdatePanel に対して 2 つの AsyncPostBackTrigger を定義しました。両方とも同じことを行うボタンです (1 つはフォームの上部にあり、もう 1 つはフォームの下部にあります)。両方のトリガー イベント名は「クリック」です。

ページをロードするとすぐに、「ID 'btnSaveChangesBtm' のコントロールが UpdatePanel 'updIncidentDetails' のトリガーに対して見つかりませんでした」というエラーが表示されます。私が見ると、「btnSaveChangesBtm」というコントロールがあるので、このエラーは意味がありません。

誰かが私が見逃しているものを見た場合に備えて、マークアップの関連するスニペットを次に示します。私はこれで途方に暮れています。

<asp:UpdatePanel ID="updIncidentDetails" runat="server">
  <ContentTemplate>
    <div id="pnlIncidentDetails" runat="server" class="formPanel">
      <h2>Incident Details</h2>
      <div id="saveButton" style="float: right; margin-right: 100px; display: none;">
        <asp:Button ID="btnSaveChanges" runat="server" OnClientClick="return valEditedFields();" OnClick="btnSubmit_Click" Text="Save Changes" />
        <asp:Button ID="btnCancel" runat="server" OnClientClick="return hideEditFields(true);" OnClick="btnCancel_Click" Text="Cancel Changes" />
      </div>

      ...

      <div id="saveButtonBtm" style="float: right; display: none;">
        <br />
        <asp:Button ID="btnSaveChangesBtm" runat="server" OnClientClick="return valEditedFields();" OnClick="btnSubmit_Click" Text="Save Changes" />
        <asp:Button ID="btnCancelBtm" runat="server" OnClientClick="return hideEditFields(true);" OnClick="btnCancel_Click" Text="Cancel Changes" />
        <br />
      </div>
    </div>
  </ContentTemplate>
  <Triggers>
    <asp:AsyncPostBackTrigger ControlID="btnSaveChanges" EventName="Click" />
    <asp:AsyncPostBackTrigger ControlID="btnSaveChangesBtm" EventName="Click" />
  </Triggers>
</asp:UpdatePanel>

「display: none;」があるからだと最初に思いました。「saveButtonBtm」<div>に設定しましたが、一番上のもの(「saveButton」)にも同じことが設定されていることに気付いたので、それだけではないと思います。他の提案はありますか?

エラーの画像は次のとおりです。 トリガーコントロールのエラーメッセージ

4

1 に答える 1

0

問題は、ボタンが AccordionPanel 内にあることが原因でした - UpdatePanel がボタンを見つけられなかったのだと思います。それらをパネルの外に移動したところ、すべて機能しました。

于 2013-06-28T21:50:32.263 に答える