ModalPopupExtender 只弹出一次 UpdatePanel

ModalPopupExtender only pops up the UpdatePanel once

ModalPopupExtender 连接 btnCancel 按钮以触发 UpdatePanel 的弹出窗口。 UpdatePanel 是一个取消确认,其中包含一个是按钮和一个否按钮。单击“否”按钮后,面板关闭,但再次单击 btnCancel 时不再触发弹出窗口。 Yes 按钮起作用并触发服务器端 YesButton_Click 事件。这是我的代码。感谢您的帮助。

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
  <cc1:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" />
  <asp:Button ID="btnCancel" Text="Cancel Task" runat="server" ToolTip="Cancel the displayed task and remove it from Tracker" CausesValidation="false" />

  <cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="btnCancel"
    PopupControlID="ConfirmationPanel" BackgroundCssClass="modalBackground" />

  <asp:UpdatePanel ID="upd_yes_no" runat="server">
    <ContentTemplate>
      <asp:Panel ID="ConfirmationPanel" runat="server" CssClass="modalPopup" Style="display: none">
        <div class="modalPopup-text">
          Are you sure you want to cancel this task?<br />
          <br />
          <asp:Button ID="YesButton" runat="server" Text="Yes" CommandArgument="Yes" OnClick="YesButton_Click" />&nbsp;&nbsp; 
          <asp:Button ID="NoButton" runat="server" Text="No" CommandArgument="No" />
        </div>
      </asp:Panel>
    </ContentTemplate>
  </asp:UpdatePanel>
</asp:Content>

我不是 100% 肯定,但看来 Extender 和 Extended 控件必须驻留在同一个 UpdatePanel 中。因此,如果您将“取消”按钮和 ModalPopupExtender 控件移到 UpdatePanel 中,它应该会按预期工作。

<ajax:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" />

      <asp:UpdatePanel ID="upd_yes_no" runat="server">
  <ContentTemplate>

    <span id="buttons">
      <asp:Button ID="btnUndo" Text="Undo Edit" CommandArgument="undo" runat="server"
        OnClick="undo" CausesValidation="false" />
      <asp:Button ID="btnNewTask" Text="New Task" CommandArgument="newTask" runat="server"
        ToolTip="Unchange current and create new task"
        OnClick="NewTask" CausesValidation="false" />
      <asp:Button ID="btnCancel" Text="Cancel Task" runat="server"
        ToolTip="Cancel the displayed task and remove it from Tracker" CausesValidation="false" />
    </span>

    <ajax:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="btnCancel" PopupControlID="ConfirmationPanel" BackgroundCssClass="modalBackground" />
    <asp:Panel ID="ConfirmationPanel" runat="server" CssClass="modalPopup" Style="display: none">
      <div class="modalPopup-text">
        Are you sure you want to cancel this task?
        <br />
        <br />
        <asp:Button ID="YesButton" runat="server" Text="Yes" CommandArgument="Yes" OnClick="YesButton_Click" />&nbsp;&nbsp;
        <asp:Button ID="NoButton" runat="server" Text="No" CommandArgument="No" />
      </div>
    </asp:Panel>
  </ContentTemplate>
</asp:UpdatePanel>