IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Afficher un ModalPopupExtender dès le load de page ?


Sujet :

ASP.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 64
    Points : 48
    Points
    48
    Par défaut Afficher un ModalPopupExtender dès le load de page ?
    Bonjour,

    J'utilise depuis les ModalPopupExtender, qui fonctionnent très bien lorsqu'ils sont liés à un évènement en particulier !

    J'aimerai cette fois en utiliser un dès le chargement de page, qui se déclenche cette fois suite à une condition du code C#, et non suite à un évènement.

    Sauf qu'on moment où la fonction javascript qui récupère le ModalPopup est appelée, le ModalPopup n'a pas l'air d'exister, puisqu'il est chargé en dernier dans la page !

    Mon javascript, récupéré sur le net :o :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <script language="javascript" type="text/javascript">
        //  keeps track of the delete button for the row
        //  that is going to be removed
     
        var _source;
        // keep track of the popup div
        var _popup;
     
        function showConfirm(){        
            //this._source = source;
            this._popup = $find('mdlPopup');
     
            //  find the confirm ModalPopup and show it    
            this._popup.show();
        }
     
        function okClick(){
            //  find the confirm ModalPopup and hide it    
            this._popup.hide();
            //  use the cached button as the postback source
            //__doPostBack(this._source.name, '');
        }
     
        function cancelClick(){
            //  find the confirm ModalPopup and hide it 
            this._popup.hide();
            //  clear the event source
            this._source = null;
            this._popup = null;
        }
    </script>
    le code ASPX
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <cc2:ModalPopupExtender runat="server" ID="mdlPopup" BehaviorID="mdlPopup" TargetControlID="panelMsgPopup" PopupControlID="panelMsgPopup" 
        OkControlID="BtnOK" CancelControlID="BtnCancel" BackgroundCssClass="modalBackground" OnOkScript="okClick();" OnCancelScript="cancelClick();"></cc2:ModalPopupExtender>

    le code C#

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (Request.Browser.Browser.ToUpper() == "IE")
            {  
                string strScript = "<script language=JavaScript>";
                strScript += "showConfirm();";
                strScript += "</script>";
                if (!this.ClientScript.IsClientScriptBlockRegistered("clientScript"))
                    ClientScript.RegisterStartupScript(this.GetType(), "clientScript", strScript);             
            }
    Avez-vous une astuce ou une idée du problème ?

    Merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    312
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 312
    Points : 411
    Points
    411
    Par défaut
    Avant de commencer, as tu vérifié que ton Id coté client était vraiment celui que tu met dans le javascript ?

    Car l'ID tu tu place (mdlPopup) est un ID coté serveur, et qu'il suffit d'avoir des parents pour que l'id généré soit différent (et donc le javascript ne trouverait pas ton contrôle).

    Si l'id est similaire, par ordre de préférence, voici plusieurs solutions:

    1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (Request.Browser.Browser.ToUpper() == "IE")
            {  
                            mdlPopup.Show();
            }
    2)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if (Request.Browser.Browser.ToUpper() == "IE")
            {  
                string strScript = "<script language='JavaScript'>";
                strScript += "Sys.Application.load.add(showConfirm);";
                strScript += "</script>";
                if (!this.ClientScript.IsClientScriptBlockRegistered("clientScript"))
                    ClientScript.RegisterStartupScript(this.GetType(), "clientScript", strScript);             
            }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    3)
    if (Request.Browser.Browser.ToUpper() == "IE")
            {  
                string strScript = "<script language='JavaScript'>";
                strScript += "Sys.Application.load.add(showConfirm);";
                strScript += "</script>";
                if (!this.ClientScript.IsClientScriptBlockRegistered("clientScript"))
                    ClientScript.RegisterClientScriptBlock(this.GetType(), "clientScript", strScript);             
            }

    Enfin tu notera que dans la signature de RegisterStartupScript, tu as un boolean 'AddScriptTags' qui te permettent de ne pas spécifier <script></script> à la main.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 64
    Points : 48
    Points
    48
    Par défaut
    Merci.
    un mdlPopup.show() coté serveur est effectivement la solution ...
    à force de travailler sur les évènement coté javascript, j'en avais oublié qu'on pouvait l'activer coté serveur

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/09/2006, 17h39
  2. [ODBC] Afficher une requête croisée dynamique dans une page PHP
    Par resterzen dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/08/2006, 16h24
  3. [MySQL] Afficher une selection d'enregistrement sur plusieurs pages
    Par largolgd dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 09/03/2006, 22h20
  4. [MySQL] Afficher du texte UTF-8 sur une page encodée en ISO
    Par MiJack dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/02/2006, 18h37
  5. [architecture] Factoriser les loads de pages ?
    Par brousaille dans le forum ASP.NET
    Réponses: 16
    Dernier message: 24/01/2006, 21h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo