Модальная всплывающая панель имеет позицию Абсолют . Поэтому он должен находиться внутри элемента, который имеет нестатическую позицию . В этом случае я хочу, чтобы он был центрирован на странице, поэтому я поместил его внутри элемента (в данном случае UpdatePanel, но не имеет значения, какой это элемент), который имеет встроенный стиль позиция: фиксированная, слева: 0; верх: 0
.
<asp:UpdatePanel ID="updProductPopup" runat="server" style="position:fixed;left:0;top:0;">
<contenttemplate>
<act:ModalPopupExtender ID="mpeProduct" runat="server" BackgroundCssClass="modalPopupBackground" BehaviorID="behaviourModalPopup" OkControlID="btnMpClose" PopupControlID="pnlModalPopup" PopupDragHandleControlID="pnlMpHandle" TargetControlID="btnMpHidden">
</act:ModalPopupExtender>
<!-- pnlModalPopup MUST have inline style display:none -->
<asp:Panel ID="pnlModalPopup" runat="server" CssClass="modalPopup" style="display:none;">
<asp:Panel runat="server" ID="pnlMpHandle" CssClass="modalPopupDragHandle">
Panel Header
</asp:Panel>
<asp:Panel runat="server" ID="pnlMpContent">Here's my content</asp:Panel>
<p class="modalPopupClose">
<a id="btnMpClose" href="#" class="custom-button">Close</a>
</p>
</asp:Panel>
<asp:Button ID="btnMpHidden" runat="server" Text="Button" CssClass="modalPopupHiddenButton" />
</contenttemplate>
Я знаю, что оригинальный вопрос довольно старый, но я потратил много времени в поисках ответа на эту проблему, не найдя его, и этот вопрос довольно высоко поднимается в Google, так что, надеюсь, это сэкономит кому-то еще время .