ModelPopupExtender没有显示在pageLoad后面的代码中

时间:2017-11-10 04:49:33

标签: c# asp.net ajax modalpopupextender

我需要在页面加载时显示弹出窗口。我使用过ModelPopupExtender。它确实显示在它的TargetControlID点击,但没有显示在页面加载后面的代码。 我已经在堆栈上检查了很多解决方案,但它们都没有为我工作。

protected void Page_Load(object sender, System.EventArgs e)
{
    this.mpOTP.Show();
}

 <asp:Button ID="activateMpOtp" runat="server" Text="Open" ClientIDMode="Static"/>
    <asp:ModalPopupExtender ID="mpOTP" runat="server" BackgroundCssClass="popup-overlay" PopupControlID="pnlOTP" CancelControlID="closeOTP" TargetControlID="activateMpOtp"></asp:ModalPopupExtender>

    <asp:Panel ID="pnlOTP" runat="server" CssClass="popup-dialogue">
    </asp:Panel>

在控制台中获取此错误 enter image description here

1 个答案:

答案 0 :(得分:0)

您的标记不正确。

首先,您需要在页面标记的顶部使用以下指令来注册AjaxControlToolKit控件。

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

然后,您的标记应如下所示。下面列出了您的标记问题。

  • 您尚未为取消按钮添加标记
  • 并且您的控件前缀也是错误的,因为它不应该是asp,前缀是ASP.Net Microsoft控件而不是AJAXControlToolKit(注意:您在AjaxControl,Toolkit的register指令中给出了这个前缀,在给出的代码示例中为act,但您可以给出任何前缀并将其用于modalpopuextender)

ModalPopupExtender的正确标记

<asp:Button ID="activateMpOtp" runat="server" Text="Open" ClientIDMode="Static"/>
<act:ModalPopupExtender ID="mpOTP" runat="server" BackgroundCssClass="popup-overlay"
         PopupControlID="pnlOTP" CancelControlID="closeOTP"
         TargetControlID="activateMpOtp"></act:ModalPopupExtender>

<asp:Panel ID="pnlOTP" runat="server" CssClass="popup-dialogue">
  <div class="header">
    Modal Popup
  </div>
  <div class="body">
    Your content goes here
    <br />
    <asp:Button ID="closeOTP" runat="server" Text="Close" />
 </div>
</asp:Panel>