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 :

Appeler une fonction javascript depuis le serveur


Sujet :

ASP.NET

  1. #1
    maa
    maa est déconnecté
    Membre actif
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Points : 288
    Points
    288
    Par défaut Appeler une fonction javascript depuis le serveur
    Bonjour,

    J'ai une application web dans laquelle j'utilise un UpdatePanel pour faire un postback. J'aimerais, à la suite de ce postback, appeler une fonction javascript avec des paramètres depuis le serveur. Est-ce possible ?
    En cherchant sur le web, j'ai trouvé la méthode RegisterClientScriptBlock. J'ai l'impression que ça peut répondre à mon problème mais je ne vois pas comment m'en servir...
    Si vous avez des exemples ou d'autres idées pour réaliser celà, ils sont les bienvenues.

    Merci d'avance.

    Mathmax

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Points : 780
    Points
    780
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    string script = "alert('yo!');";
    ScriptManager.RegisterStartupScript(    this.Page, 
                                                    this.GetType(),
                                                    "test",
                                                    script,
                                                    true );
    Like this?

    Il faut utiliser ScriptManager.machinScript; car Page.ClientScript.machinScript ne s'effectuera qu'au chargement de la page.


    [EDIT] SctarupScript pour lancer le script à la fin du refresh ; Registerblabla au début (juste l'emplacement du script)

    [REEDIT] Ma string au début, c'est pour insérer une autre string a l'intérieur, donc ca donne ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string script = "mafunctiondejaexistantedelautrecotédansunfichier.js('" + strRes + "');";

  3. #3
    maa
    maa est déconnecté
    Membre actif
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Points : 288
    Points
    288
    Par défaut
    Oui mais comment appeler la fonction javascript avec un ou plusieurs paramètres ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Points : 780
    Points
    780
    Par défaut
    Arf tu m'a doublé... Je fourni en param de l'appel de la function mon parametre;
    Si tu veux en ajouter plusieurs tu ajoute au milieu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    " ...( '" + param1 + "', '" + param2 + "'  );"
    [EDIT] oublié les quote...

  5. #5
    maa
    maa est déconnecté
    Membre actif
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Points : 288
    Points
    288
    Par défaut
    ok merci. Et est-ce possible d'appeler une fonction javascript depuis le serveur sans qu'il n'y est de postback ? On pourrais par exemple imaginer un timer qui appelle une fonction javacript toutes les x secondes.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Points : 780
    Points
    780
    Par défaut
    Non, Tu ne connais pas le client : on n'envoit pas de données au client, c'est lui qui les récupèrent.
    Pas contre à voir coté client, donc javascript :

    http://www.devparadise.com/technoweb...cript/a252.php

    Plutot ca en fait :
    http://www.google.fr/search?num=20&h...chercher&meta=

    Evidemment si ensuite tu souhaite raffraichir ta page avec AJAX, il faut que tu déclenche le refresh de l'UpdatePanel manuellement...

  7. #7
    maa
    maa est déconnecté
    Membre actif
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Points : 288
    Points
    288
    Par défaut
    J'ai encore un problème. Je t'explique ce que je veux faire :
    Cette page utilise un update panel. Quand je clique sur un élément de la liste de gauche, une info s'affiche à droite (rechargement partiel de la page). Ce que j'aimerais, c'est ajouter un paramètre à l'url qui est un identifiant pour chaque info de sorte que quand on clique sur une info, l'url change et affiche l'identifiant de l'info.
    Comme je connais l'identifiant côté serveur, je voulais profiter du postback pour le renvoyer cet id chez le client et modifier ensuite l'url.

    J'ai donc écris la fonction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
                string script = "location.href += '?id=" + MonId + "';";
     
                ScriptManager.RegisterStartupScript(Page,
                                                    GetType(),
                                                    "test",
                                                    script,
                                                    true);
    Le problème est que le fait de modifier l'url semble générer un postback, qui lui même entraîne une modification de l'url... bref on rentre dans un cercle vicieux interminable.

    As-tu une solution à ce problème ?

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Points : 780
    Points
    780
    Par défaut
    Oui c'est un probleme...
    Je suppose quand ajoutant l'ID à l'url de la page tu souhaitais résoudre le probleme de l'Historique avec AJAX et faire fonctionner Suivant/précédent?

    En tout cas tu m'as donné envie de manger ma banane...

    Désolé, mais je crois que j'aurais bientot un probleme de ce genre...
    Et la je rentre,
    concert des Smash... (youpi!)

  9. #9
    maa
    maa est déconnecté
    Membre actif
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Points : 288
    Points
    288
    Par défaut
    Je suppose quand ajoutant l'ID à l'url de la page tu souhaitais résoudre le probleme de l'Historique avec AJAX et faire fonctionner Suivant/précédent?
    Oui et aussi j'aimerais pouvoir référencer chaque info avec des balise meta (description, keywords, title propre à l'info) mais je crois qu'il faut une unique pour chaque info pour que le moteur de recherche référencie correctement, non ?

    Sinon, je n'ai pas compris, tu as une solution à ce problème ? Peux-être faut-il procéder totalement différemment, mais l'idée est d'avoir une url par info sans recharger complètement la page quand on clique pour afficher l'une d'entre elles. Est-ce possible ?

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Points : 780
    Points
    780
    Par défaut
    Pour les meta je ne vais pas pouvoir t'aider.

    Pour suivant précédent, google a réussi à le résoudre : ça nécessite une recherche plus appronfondie... Je vais bientot me pencher dessus...

    Ben non en fait j'ai deja chercher, regarde ce truc :

    http://www.aspcode.net/articles/l_en...ticle_453.aspx

    Ca à l'air sympa...

  11. #11
    maa
    maa est déconnecté
    Membre actif
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Points : 288
    Points
    288
    Par défaut
    Ok, merci pour ton aide Chubyone.

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

Discussions similaires

  1. appeler une fonction javascript depuis une extension firefox
    Par ____22 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 30/08/2011, 16h46
  2. Appeller une fonction Javascript depuis le Code VB
    Par chrislcf dans le forum ASP.NET
    Réponses: 5
    Dernier message: 08/08/2008, 12h41
  3. Appeler une fonction Javascript depuis un AS3
    Par pfo69 dans le forum ActionScript 3
    Réponses: 2
    Dernier message: 06/12/2007, 14h43
  4. Réponses: 2
    Dernier message: 05/10/2007, 14h31
  5. Comment appeler une fonction JavaScript depuis Delphi ?
    Par Alfred12 dans le forum Web & réseau
    Réponses: 4
    Dernier message: 17/06/2005, 18h15

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