我需要在页面加载时显示弹出窗口。我使用过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>
答案 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>