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 :

ouverture ligthbox en codebehind [Débutant]


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 76
    Points : 32
    Points
    32
    Par défaut ouverture ligthbox en codebehind
    Bonjour,

    Je souhaiterais ouvrir une lightbox a partir du codebehind.

    plus précisément, j'ai une textbox et un bouton "envoyer".
    sur l'action du bouton, je fait un traitement de la textbox et si mon traitement est ok, je voudrais afficher une lightbox pour informer que tout est ok.


    merci de votre aide.

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Une lightbox pour indiquer que tout est ok ? Une lightbox ne sert-elle pas à afficher des images ???

    Le traitement qui est fait dans ton code-behind au clic sur ton bouton doit-il nécessairement être fait côté serveur ?
    - si non, fais ton traitement côté JS (traitement + appel d'une lightbox) et passe la fonction JS créée à la propriété OnClientClick de ton bouton.
    - si non, dans l'event "Click" de ton bouton, tu réalises ton traitement serveur puis tu passes par RegisterClientScriptBlock pour lancer ton js après le postback.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 76
    Points : 32
    Points
    32
    Par défaut
    Merci pour ta reponse.

    une lightbox peut aussi faire appel a une autre page.
    c'est d’ailleurs ce que je veux faire.
    ensuite je suis un peu obligé de faire mon appel depuis le codebehind, car je dois faire des insertions et des appel BDD avant d'afficher que tous est ok par la lightbox.

    du coup tu me parle de RegisterClientScriptBlock et je n'ai pas réussi a le mettre en place.
    aurait tu de bon exemples la dessus?

  4. #4
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Tu trouveras les meilleurs exemples sur la MSDN.
    Il suffit que ton script d'ouverture de lightbox soit prêt, et tu n'as plus qu'à renseigner correctement les paramètres de la méthode.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 76
    Points : 32
    Points
    32
    Par défaut
    Le problème a l'air plus pointilleux que ca.
    en fait j'ai presque réussi a faire ce que je veux, mais il y a encore un problème;
    en fait lorsque j’appel ma ligthbox dans mon codebehind, tout les élément nécessaire a son fonctionnement ne sont pas chargé.

    ma solution est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    l_script.Text = "<script>setTimeout('essai()',0);</script>";
    sous IE ça marche mais sous FireFox; il faut mettre le timeout a une valeur >0.
    mais c'est pas très correcte, car si je mets 1seconde, ça marche.
    mais si ma page met plus d'une seconde, ça ne va pas marcher.

    donc il faut que je trouve une solution qui pourrais dire "lance le script après avoir tout chargé".

  6. #6
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Est-ce que tu utilises Ajax ?
    Plus précisément, est-ce que tu utilises l'AjaxControlToolkit ?
    Si oui, est-ce que le code en question est dans un UpdatePanel ?
    Si oui (ça fait plusieurs oui, j'en conviens ), avec le PageRequestManager, tu peux n'exécuter un script qu'à la fin du rendu de la page. Soit, après que tout ait été chargé.
    Si non, essaye peut-être de mettre le litéral qui contient ton script tout en bas de ta page, de sorte qu'il soit exécuté en dernier.

    Question au passage : si tu utilises setTimeout, pourquoi le mettre à 0 ?

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 76
    Points : 32
    Points
    32
    Par défaut
    Déjà je ne peux pas le mettre en bas de pages puisque je lance l'ouverture a partir d'un composant ascx.
    quand a ajax, je ne suis pas très fan, et je n'ai d’ailleurs aucune idée de comment le mettre en place.
    et non, le code n'est pas dans un updatepanel (et je ne pense pas pouvoir le mettre dans un updatepanel).

    (Désoler pour tout, mais je suis vraiment niveau débutant)

    J'ai oubluier de preciser que la fonction essai() ouvre une lightbox comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Lightbox.show('Default.aspx', '', 'width=760 height=650');
    et ca bloque sur l'appel a certaine fonction utilisé par Lightbox.show

  8. #8
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Citation Envoyé par Matt_NewDev Voir le message
    Déjà je ne peux pas le mettre en bas de pages puisque je lance l'ouverture a partir d'un composant ascx.
    Et alors, qu'est-ce qui t'en empêche, je ne comprends pas ?

    Citation Envoyé par Matt_NewDev Voir le message
    J'ai oubluier de preciser que la fonction essai() ouvre une lightbox comme ceci:
    Lightbox.show('Default.aspx', '', 'width=760 height=650');
    et ca bloque sur l'appel a certaine fonction utilisé par Lightbox.show
    As-tu une erreur javascript ou quelque chose que l'on puisse débuguer ?

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 76
    Points : 32
    Points
    32
    Par défaut
    Bonjour,

    En effet j'ai une erreur Javascript:
    Erreur d'exécution Microsoft JScript: Impossible d’obtenir la valeur de la propriété « setStyles » : objet null ou non défini
    Entre autre, quand je lance le script d'affichage de ma lightbox, il doit me manquer des propriétés utilisées par cette lightbox.
    des propriétés qui sont initialisées a l'affichage de la page.

    Je pense qu'il faudrait que je trouve comment lancer mon script après que ma page soit affiché.
    Je sais pas si c'est faisable ça.

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 76
    Points : 32
    Points
    32
    Par défaut
    Bon j'ai réussi a contourner mon problème.

    J'ai trouvé une petite fonction bien pratique en java script qui permet de faire l'attente que tout les éléments nécessaire soit chargés.
    le script est le suivant:
    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
     
    function attend() {
                tentative = tentative - 1;
     
                var ret=true;
                try
                {
                    Lightbox.show('Default.aspx', '', 'width=760 height=650 ');
                }
                catch(erreur) {
                if(tentative> 0)
                    setTimeout("attend();",1000);
                    ret=false;
                }
    }
    j'ai juste ajouté une variable tentative qui me permet de ne pas tourner en boucle indéfiniment (le code étant récursif).
    j'ai plus qu'a lancer cette fonction en ouverture de page ou non.
    pour ca je le fait a partir du code behind avec la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ClientScript.RegisterStartupScript(this.GetType(), "startPopup", "<script type=\"text/javascript\">attend();</script>", false);
    Comme ça je peux faire un traitement dans le codebehind pour voir si je l'affiche ou pas.
    Je sais pas si c'est le meilleur moyen.

    en tout cas, ça me donne ce que je veux.

    Merci pour les réponses de calagan99

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/12/2002, 11h07
  2. Resau local => ouverture et fermeture
    Par Nutcase dans le forum Développement
    Réponses: 8
    Dernier message: 17/11/2002, 15h16
  3. [TForm] Ne pas autoriser l'ouverture d'un form
    Par sbeu dans le forum Composants VCL
    Réponses: 6
    Dernier message: 11/10/2002, 11h20
  4. Réponses: 2
    Dernier message: 22/07/2002, 12h13
  5. Réponses: 2
    Dernier message: 04/06/2002, 10h34

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