2009-10-22 8 views
0

J'essaye de faire fonctionner un popup modal, il doit être déclenché dans le code derrière.Une autre question d'extension de popup modale

<asp:Button ID="btnModalPopUp" runat="server" Text="Button" Style="display: none" /> 
<asp:Panel ID="pnlModalPopup" runat="server" CssClass="modalPopup" Style="display: none" 
    Width="233px"> 
    <div id="Div1" runat="server" cssclass="title"> 
     Modal text here. 
     <asp:TextBox ID="txtEditComments" runat="server"></asp:TextBox> 
    </div> 
</asp:Panel> 
<cc1:ModalPopupExtender ID="modalMessage" runat="server" TargetControlID="btnModalPopUp" 
    PopupControlID="pnlModalPopup" BackgroundCssClass="modalBackground"   DropShadow="true"/> 

code derrière:

protected void Page_Load(object sender, EventArgs e) 
{ 
    modalMessage.Show(); 
} 

Même si elle touche la "modalMessage.Show();" code il n'affiche pas le panneau modal.

+0

OK - quel est le problème? BTW: Arthur

+1

@Arthur: 'display: none' est nécessaire sur le plan cosmétique, sinon le popup s'affichera lorsque la page est en cours de chargement, puis disparaîtra rapidement pendant que' ModalPopupExtender' entre et se cache. – Chris

+0

Juste une question, mais cela fonctionne-t-il si vous supprimez "display: none" de btnModalPopup? –

Répondre

2

Deux solutions:

La première solution:

Retirez Style="display:none" du pnlModalPopup.

La première solution est de faire clignoter le popup sur l'écran lorsque la page se charge d'abord, puis de disparaître rapidement.

La deuxième solution:

protected void Page_Load(object sender, EventArgs e) 
{ 
    pnlModalPopup.Style["display"] = "block"; 
    modalMessage.Show(); 
} 

Recommandation: Je recommanderais d'utiliser la deuxième solution, de cette façon la fenêtre contextuelle modale ne clignote pas, puis disparaître.

Edit: Je viens de tester votre code:

Je viens de tester votre code dans une page simple qui contient uniquement le code que vous avez fourni ... Cela a fonctionné comme prévu.

Vérifiez les points suivants:

  1. Votre pop-up modal est défini dans un UpdatePanel qui est conditionnelle à jour?
  2. Assurez-vous que la fenêtre contextuelle modale n'est pas définie dans un Panel dont la visibilité est définie sur false.
  3. Si cela ne fonctionne pas, vérifiez si la fenêtre contextuelle modale est réellement dans le code source de la page Web rendue.
+0

Ces deux solutions ne fonctionnaient pas. Merci quand même. –

+0

Y a-t-il d'autres références dans votre code où vous définissez la visibilité de 'pnlModalPopup' (soit par la balise de style, soit par la propriété visible)? – Chris

+0

CSS: .modalBackground { Couleur de fond: Gris; filtre: alpha (opacité = 70); opacité: 0,7; } .modalPopup { Couleur de fond: #ffffff; rembourrage: 3px; } C'est le seul style que je fais avec ces commandes. –

0

Écoutez le commentaire de Chris comme il est nécessaire:

display: none est cosmétiquement nécessaire, sinon le pop-up s'affiche lorsque le chargement, puis va rapidement disparaître alors que le ModalPopupExtender entre en jeu et le cache.

Nous devions faire le nôtre spectacle comme ceci:

pnlModalPopup.Visible = true;   
    modalMessage.Show(); 
+0

qui ne fonctionnerait que s'ils définissaient la propriété Visible sur false quelque part dans le code, car il ne définissait pas la propriété Visible dans le balisage. Et si c'était le cas ... il devrait considérer ** ne jamais mettre la propriété 'Visible' en premier lieu. ** – Chris

+0

Nous ne définissons pas la propriété visible dans la nôtre, testez-la. –

+0

Si le modal ne s'affiche pas, il y a plus que probablement une erreur JavaScript. –

Questions connexes