6

J'ai un ModalPopupExtender de l'AjaxControlToolkit qui fonctionne correctement dans Firefox, Chrome et IE8, mais quand je l'exécute en mode de compatibilité IE8, il apparaît derrière le contenu de ma page, plutôt que sur le dessus.
La fenêtre contextuelle est dans un contrôle utilisateur rendu par la page maître. Ce que je pense est en train de se passer devant le contenu de la page maîtresse, car le contenu de la Masterpage (mon en-tête et mes encadrés) est grisé, mais les espaces réservés du contenu sont affichés devant mon popup. J'ai trouvé une ligne de solution qui suggère de modifier votre déclaration DOCTYPE dans la page principale à:ModalPopupExtender ne rendra pas devant tout dans IE7/IE8 Mode de compatibilité

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

Mais j'avais déjà cette déclaration exacte et toujours le problème de positionnement. Voici le code popup:

<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> 

Et le CSS concerné:

.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; 
} 
+0

J'ai eu un problème dans IE8 avec mes popups qui n'apparaissaient pas au-dessus de tous les conteneurs parent dans lesquels ils étaient définis. Certains éléments quel que soit l'index z seraient toujours en haut (comme dans IE6 avec le menu déroulant).Dans mon cas c'était seulement une main pleine de contrôles que je cache simplement quand le popup apparaît. Je ne suis pas sûr de ce que je veux dire, mais je pensais juste partager – JoshBerke

+0

Cela semble similaire à ce que j'ai, mais il me semblerait étrange de cacher le contenu de ma page principale lorsque je fais le popup. – fr0man

Répondre

0

Cela pourrait être une solution, vous pouvez utiliser:

Problem in Z-index of menu and ajax ModalPopupExtender in ASP.net

J'ai été en cours d'exécution dans ce numéro aussi ... mais sur un produit de pré-lancement que nous n'allions pas vraiment supporter pour IE6/7. Mais, je l'ai juste essayé. Assurez-vous que tous les divs qui contiennent vos contrôles dans le popup modal ont un index z très élevé (comme 10001).

+0

C'était prometteur, mais n'a pas fonctionné. J'ai mis un z-index sur et autour de tout ce que je pouvais et ça ne sortait toujours pas devant le contenu de mon espace réservé. – fr0man

1

Je viens de trouver votre message tout en essayant de résoudre le même problème. Pour ma part, je l'ai suivi jusqu'à une balise div, appelée MainBody, qui contient tout le contenu de la page. La classe CSS qui contrôle cette div a un positionnement relatif mais pas d'index z. Dès que j'ai défini l'index z sur -1 pour mainBody, mon modalPopup fonctionnait parfaitement dans IE7.

Espérons que cela aide ?!

1

Vous pouvez uniquement définir l'index Z dans IE pour le div parent dans lequel vous vous trouvez. Un div plus haut sera toujours rendu au-dessus de votre div inférieur. J'ai résolu le problème en mettant toujours le Div Modualwindow directement après l'étiquette. Si c'est le premier div c'est toujours au top.

Henrik

0

Si vous utilisez le ModalPopupExtender (ajaxToolkit 4.1.50927.0 et .Net 4.0.30319) dans un projet ASP.NET, vous pouvez faire face au même problème avec IE7 et IE8. La fenêtre Popup sera entièrement rendue dans IE 9 mais pas dans IE7 & IE8. Dans ce cas, essayez de supprimer le AnimationExtender (fondu) pour que cela fonctionne correctement. Vérifiez la version du navigateur et affichez le code de l'animation via JS pour les nouveaux navigateurs qui peuvent gérer l'effet de fondu ou n'utilisez pas l'animation si le navigateur est, disons, IE7.

1

Je voudrais ajouter que Z-index est en effet le problème pour ceux qui exécutent cela dans IE 10 compat view, qui par défaut est le mode doc IE7 sur un réseau local. J'ai utilisé z-index: -1 pour le html et le corps, puis j'ai dû passer à z-index: 100 pour les autres conteneurs. Les classes pop-up sont à z-index: 999999; Vous devrez ajuster votre site.

Questions connexes