2010-05-10 9 views
1

Je rencontre un problème avec AJAX ModalPopupExtender dans la version 40412 de AJAX Control Toolkit (http://ajaxcontroltoolkit.codeplex.com/releases/view/43475).AJAX ModalPopup affiche le contenu de la page en dessous (sous-index négatif)

La première fois que ModalPopup est rendu visible, il fonctionne correctement. L'index z est défini sur 6001 (et l'index z de la base en arrière-plan est défini sur 6000) et le pop-up apparaît au-dessus de tout le reste. Si vous cliquez sur le bouton Annuler dans ModalPopup, la fonctionnalité est correcte, l'affichage est défini sur "none" et le ModalPopup n'est plus visible. Cependant, lorsque le Popup est à nouveau déclenché, l'index z est uniquement défini sur 2000, ce qui est encore visible avant tout, mais s'il est annulé et déclenché à nouveau, il est défini sur -2000, ce qui n'est pas visible (le z-index diminue de 4000 à chaque fois).

Je ne sais pas pourquoi cela se produit. Des idées comment résoudre ce problème?

circonstances spéciales:

  • Il y a plusieurs années ModalPopup sur la page.
  • Tous les ModalPopups sont déclenchées dans le code-derrière par postbacks de pages partielles (selon la méthode .Show())
  • ModalPopupExtenders sont dans les mêmes UpdatePanels qui sont affichées comme popups

UPDATE: cela était un bug confirmé par l'équipe du projet. http://ajaxcontroltoolkit.codeplex.com/workitem/26739. Il a maintenant été corrigé.

Répondre

1

Ce fut un bug confirmé par l'équipe du projet. http://ajaxcontroltoolkit.codeplex.com/workitem/26739. Il a maintenant été corrigé.

De l'équipe: Nous avons confirmé qu'il s'agit d'un bogue qui figurait dans la version initiale 40412. Nous l'avons maintenant remplacé par une version modifiée qui corrige ce problème. S'il vous plaît télécharger à nouveau 40412 pour résoudre ce problème

1

Une solution de contournement consiste à définir le CSS pour le ModalPopup comme suit; Cela remplacera le CSS en ligne appliqué à l'élément par AJAX Control Toolkit.

.ModalPopup 
{ 
    z-index: 6001 !important; 
} 
.ModalPopupBackground 
{ 
    z-index: 6000 !important; 
} 
1

J'ai juste eu un problème comme celui-ci. Voici une solution rapide que je suis venu avec

<script type="text/javascript"> 
    onload = function() { 
     Sys.WebForms.PageRequestManager.getInstance().add_endRequest(resetCounter); 
    } 
    function resetCounter(sender, args) { 
     try { 
      Sys.Extended.UI.ModalPopupBehavior._openCount = 0; 
     } catch (ex) { 
      // try-catch-throw away! 
     } 
    } 
</script> 

Dans le ExtendedModalPopup javascript il appelle cacher sur chaque poste de back page partielle qui fait un _openCount--.

C'est le code où le zindex se prépare sur la base _opencount:

var zindex = 10000 + (Sys.Extended.UI.ModalPopupBehavior._openCount++ * 1000); 

Alors _openCount se prépare à un nombre négatif

0

Dans mon cas, le modalpopup fonctionne parfaitement les 10 premières fois, mais la prochaine fois apparaît derrière d'autres composants de la page. Réglage z-index en css fonctionne pour moi, merci!

.modalbackground { 
    background-color: Gray;   
    filter: alpha(opacity=70); 
    opacity: 0.7; 
    z-index: 6000 !important; 
    }  
.popup 
    {   
    background-color:#FFF; 
    padding:10px;  
    max-width:600px; 
    z-index: 6001 !important; 
    }