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 :

[C#] Appel d'une fonction JavaScript


Sujet :

ASP.NET

  1. #1
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut [C#] Appel d'une fonction JavaScript
    Ca marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.Write("<script language=\"JavaScript\">alert(\'Fichiers\');</script>");
    Ca marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.Write("<script language=\"JavaScript\">document.vide(\'Fichiers\');</script>");
    Ma fonction JavaScript (pour vous prouver que c'est pas la fonction JS qui ne fonctionne pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function vide(type)
    {
    	alert(type);
    	tab=document.getElementById('Table'+type);
    	nb=tab.rows.length;
    	for (i=1;i<nb;i++)
    		tab.deleteRow(1);
    	alert(type);
    }
    Ca ne m'affiche même pas la première alerte !

    Bref je voudrais savoir ce qui ne va pas dans ma syntaxe siouplé.

    Je précise que je fais l'appel à partir du Page_Load dans le if (!IsPostBack) et que c'est la même chose si je le sort du !IsPostBack

    Merci !

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2003
    Messages
    835
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2003
    Messages : 835
    Points : 1 046
    Points
    1 046
    Par défaut
    Salut,

    J'y connais vraiment pas grand chose en Javasdcript, alors je dis peut etre une betise hein, mais tu es sure que tu dois prefixer l'appel de ta fonction par document ? Un appel direct à ta fonction "vide" ne marche pas ?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 52
    Points : 28
    Points
    28
    Par défaut
    en ce qui concerne les alerts, g eu du mal a comprendre comment elles fonctionnaient. ce que je peux te dire c que c possible qu'elles ne marchent pas si t'as une erreur apres. Je te conseille de virer toutes les lignes (sauf l'alert) et de les remettre une a une pr savoir ou ca merde.

  4. #4
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765

  5. #5
    Membre régulier Avatar de dupin40
    Profil pro
    Inscrit en
    Août 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 102
    Points : 100
    Points
    100
    Par défaut
    Je ne pense pas que ton code soit "bugger" mais je pense plutot que c'est un problème d'appel utilise plutôt le RegisterClientScriptBlock plutôt que le Response.Write pour injecter du code JS dans ta page.

    1- déclare tes fonctions JS dans le HEADER de ta page aspx
    2- RegisterClientScriptBlock("mon_alerte", ""<script language=\"JavaScript\">alert(\'Fichiers\');</script>)

    no frag, no life

  6. #6
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    alors comme l a dit sphax, vide() ca suffit.

    est c que tu as essayer de voir ce que tu donne comme erreur la console javascript de firefox? ca aiderait a cerner ton probleme.

    si ta methode n existe pas, c'est peut etre que tu as une erreur de syntaxe plus haut dans tes declarations de fonctions javascript.(qui empeche donc la compilation de ta fonction vide() )

    Les touches magiques : /* et */

    tu reactive tes fonctions une par une jusqu a trouver les erreurs.

  7. #7
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Il me dit que vide n'est pas définie alors qu'elle l'est

    Citation Envoyé par dupin40
    1- déclare tes fonctions JS dans le HEADER de ta page aspx
    2- RegisterClientScriptBlock("mon_alerte", ""<script language=\"JavaScript\">alert(\'Fichiers\');</script>)
    Tu peux me faire un exemple court s'il te plait ?

  8. #8
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    si ta methode n existe pas, c'est peut etre que tu as une erreur de syntaxe plus haut dans tes declarations de fonctions javascript.(qui empeche donc la compilation de ta fonction vide() )

    Les touches magiques : /* et */

    tu reactive tes fonctions une par une jusqu a trouver les erreurs.
    bienvenue dans le monde javascript....


    PS : si besoin, poste tes fonctions kon regarde ca...

  9. #9
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    C'est dans mon premier post J'ai posté ma fonction

  10. #10
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function vide(type)
    {
    /*   alert(type);
       tab=document.getElementById('Table'+type);
       nb=tab.rows.length;
       for (i=1;i<nb;i++)
          tab.deleteRow(1);
       alert(type);*/
    }
    si ca te met toujours que la fonction est non definit, c'est normalement que le bug est plus haut dans ton script.

    autrement, si ca marche, t a 5 lignes a tester pour trouver celle qui deconne.

  11. #11
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Non en fait je pense que c'est dû à l'appel.

    Quand on fait un Response.Write(), la ligne est ajoutée au début. Tout en haut de la hiérarchie de la page. Hors mes fonctions sont définies dans le head. Et quand je les définit hors du HTML Ca ne fonctionne pas mieux, peut être parce qu'elles sont appelées après

    Enfin j'aimerais bien y remédier mais je ne vois pas comment.

  12. #12
    Expert éminent
    Avatar de pmithrandir
    Homme Profil pro
    Responsable d'équipe développement
    Inscrit en
    Mai 2004
    Messages
    2 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Responsable d'équipe développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 418
    Points : 7 295
    Points
    7 295
    Par défaut
    bah, depuis 3 semaine, a chaque fois que j'ai eu cette erreur, ca venait des fonctions javascript et pas de l appel.(sauf erreur de casse ou de frappe)

    l endroit ou tu ecrit ton appel importe peu

  13. #13
    Membre régulier Avatar de dupin40
    Profil pro
    Inscrit en
    Août 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 102
    Points : 100
    Points
    100
    Par défaut
    je le refais avec un exemple :
    oups, je voulais dire RegisterStartupScript et pas RegisterClientScriptBlock

    page aspx :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <head>
    function vide(type)
    {
       alert(type);
       tab=document.getElementById('Table'+type);
       nb=tab.rows.length;
       for (i=1;i<nb;i++)
          tab.deleteRow(1);
       alert(type);
    }
    </head>
    page source (code behind) : c#
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ...
    RegisterStartupScript("mon_alerte", "<script>vide(\'Fichiers\');</script>);
    ...
    Tout l'intêret du RegisterStartupScript est qu'il injecte du code JS en fin de page (comme son nom l'indique : start ... j'ai toujours pas compris pourquoi start ... mais c'est une autre question).
    no frag, no life

  14. #14
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Génial !! Merci beaucoup

    Grâce à toi je vais refaire mon code en plus propre

  15. #15
    Membre régulier Avatar de dupin40
    Profil pro
    Inscrit en
    Août 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 102
    Points : 100
    Points
    100
    Par défaut
    Résolu ?
    no frag, no life

  16. #16
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Le problème c'est quand j'appele deux fois avec le même nom. Y'a pas un équivalent sans le nom ?

  17. #17
    Membre régulier Avatar de dupin40
    Profil pro
    Inscrit en
    Août 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 102
    Points : 100
    Points
    100
    Par défaut
    Pourquoi est ce que tu voudrais appeler 2 fonctions JS différentes par le même nom ?!?
    Quel est le problème, j'ai du mal à te suivre.
    le premier paramètres est une clé qui permet de définir de manière unique le bloc JS dans la page.

    Page.RegisterStartupScript, méthode
    [C#]
    public virtual void RegisterStartupScript(
    string key,
    string script
    );

    Paramètres
    key
    Clé unique qui identifie un bloc de script.
    script
    Contenu du script qui sera envoyé au client.
    Notes
    Analogue à la méthode RegisterClientScriptBlock, cette méthode émet le script juste avant la balise de fermeture de l'élément <form runat= server> de l'objet Page. Le bloc de script étant émis lors de la définition de l'objet qui restitue la page, vous devez inclure les deux balises de l'élément <script>.

    En identifiant le script avec la key, plusieurs instances de contrôle serveur peuvent demander le bloc de script sans que ce dernier doive être émis deux fois dans le flux de sortie.

    Tous les blocs de script ayant les mêmes valeurs de paramètre key sont considérés comme des doublons.

    Remarque N'oubliez pas d'inclure des balises de commentaire HTML autour de votre script de façon qu'il ne soit pas rendu si un navigateur demandeur ne prend pas en charge les scripts.
    no frag, no life

  18. #18
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Regarde, j'ai une liste de fichiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string lesFichiers={"a.aspx","b.aspx"}
    Si je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for (int i=0;i<lesFichiers.Count;i++)
        RegisterStartupScript("Lire"+lesFichiers[i],"<script language=\"JavaScript\">join(\'"+lesFichiers[i]+"\');</script>");
    Là pas de problèmes !

    Mais si j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string lesFichiers={"a.aspx","a.aspx"}
    Ca commence à plus aller...

    Alors tu vas me dire, tu n'a qu'a mettre des chiffres. Mais si je modifie la liste des fichiers, les anciens appels n'ont pas été effacés

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

Discussions similaires

  1. [html:link] Appel d'une fonction javascript
    Par chennuo dans le forum Struts 1
    Réponses: 2
    Dernier message: 05/10/2006, 17h13
  2. Réponses: 2
    Dernier message: 03/04/2006, 18h38
  3. [JSP]Appel d'une fonction javascript
    Par scraly dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 12/07/2005, 11h50
  4. Erreur a l'appel d'une fonction javascript
    Par linou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 10/03/2005, 11h16
  5. Réponses: 4
    Dernier message: 02/06/2004, 16h35

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