在IE7/IE8兼容模式下,ModalPopupExtender不会呈现在所有内容之前

fr0*_*man 6 asp.net internet-explorer modalpopupextender ajaxcontroltoolkit

我有一个来自AjaxControlToolkit的ModalPopupExtender,可以在Firefox,Chrome和IE8中正常运行,但是当我在IE8兼容模式下运行时,它会弹出我页面的内容,而不是在顶部.
弹出窗口位于由主页面呈现的用户控件中.我认为正在发生的是它正在主页面内容中出现,因为主页内容(我的标题和侧边栏)显示为灰色,但内容占位符在我的弹出窗口前呈现.我在网上找到了一个解决方案,建议将母版页中的doctype声明更改为:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Run Code Online (Sandbox Code Playgroud)

但我已经有了确切的声明,仍然存在定位问题.这是弹出代码:

<cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server"
    TargetControlID="lnkbtnDealerID"
    PopupControlID="pnlPopup"
    BackgroundCssClass="modalBackground"
    DropShadow="true"
    OkControlID="OkButton"
    CancelControlID="CancelButton"
    OnOkScript=""
    >
</cc1:ModalPopupExtender>

  <asp:Panel ID="pnlPopup" runat="server" CssClass="modalPopup" Style="display: none"     Width="233px">
   <p>Are you sure?  Your current shopping cart is valid only for the current Dealer ID.      Switching Dealer IDs will reset your cart according to the new Dealer ID chosen.</p>

   <br />
   <div align="center">
      <asp:Button ID="OkButton" runat="server" Text="Ok" />
      <asp:Button ID="CancelButton" runat="server" Text="Cancel" />
   </div>
   </asp:Panel>
Run Code Online (Sandbox Code Playgroud)

和相关的CSS:

.popupControl {
    background-color: white;
    position:absolute;
visibility:hidden;
border-style:solid;
border-color: Black;
border-width: 2px;
}

.modalBackground {
background-color:Gray;
filter:alpha(opacity=70);
opacity:0.7;
}

.modalPopup {
background-color:white;
border-width:1px;
border-style:solid;
border-color:Gray;
padding:3px;
width:250px;
}
Run Code Online (Sandbox Code Playgroud)

Chr*_*yer 0

这可能是您可以使用的解决方案:

ASP.net 中菜单和 ajax ModalPopupExtender 的 Z 索引问题

我也遇到过这个问题...但是在预发布产品上我们并不真正支持 IE6/7。但是,我刚刚尝试过。确保在模态弹出窗口中保存控件的所有 div 都具有非常高的 z-index(例如 10001)。