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

jQuery Discussion :

envoi de paramètre dans une fonction jQuery depuis ASP.NET


Sujet :

jQuery

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2011
    Messages : 31
    Points : 27
    Points
    27
    Par défaut envoi de paramètre dans une fonction jQuery depuis ASP.NET
    Bonjour,
    Je développe une application dont je ne maitrise pas le nombre d'éléments qui seront présents dans ma page.

    Je veux donc créer un bouton dans chaque élément (j'utilise des Aspanel pour les éléments et des asp:linkbutton pour les bouton).
    Pour mes boutons, je veux indiquer dans l'évènement OnClientClick une fonction javascript identique pour tous les boutons et passer un paramètre pour indiquer l'ID de mon Panel.
    Pour ça, ça semble fonctionner.

    Par contre, je n'arrive pas à bien comprendre dans ma fonction javascript ce qui ne va pas pour faire du jQuery.

    Dans mon code-behind ASP, j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    LinkButton bDevelopperPiece = new LinkButton();
    bDevelopperPiece.ID = "BDevelopper" + inumPiece.ToString();
    bDevelopperPiece.CssClass = "bdevelopperbloc";
    bDevelopperPiece.ToolTip = "Développer";
    bDevelopperPiece.OnClientClick = "alerter('" + bDevelopperPiece.ID + "');return false;";
    Et dans ma fonction javascript, j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function alerter(Texte) {
            var $MonEquipement = $('' + Texte + '');
            $MonEquipement.fadeOut();
            return false;
    };
    En fait, je veux faire disparaitre mon bouton, et seulement lui, quand je clique dessus.

    Je ne dois pas bien comprendre le principe dans jQuery.
    Si quelq'un peut m'aider pour me dire ce qu'il faut mettre dans ma fonction alerter().

    Merci

  2. #2
    Membre actif
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Points : 286
    Points
    286
    Par défaut
    Je pense t'as mal compris comment on utilise jQuery ... Pour sélectionner par un identifiant tu utilise # :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function alerter(Texte) {
            var MonEquipement = $('#' + Texte);
            MonEquipement.fadeOut();
            return false;
    };

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Tout d'abord, le code ASP, c'est bien joli mais on s'en moque royalement : JavaScript s'exécute coté client, c'est donc le code HTML généré qui est utile !

    Sinon, il y a des erreurs dans ton code.
    * '' + Texte + '' : à quoi servent les '' ???
    * $('' + Texte + '') : cette syntaxe recherche les balises de type "Texte"... je doute qu'il y en ai dans ta page ! Pour rechercher un id, il faut faire précéder d'un "#".
    * "alerter('" + bDevelopperPiece.ID + "');return false;" : si ton élément est de type button, le return false ne sert à rien... puisqu'un bouton n'a pas d'action par défaut. D'autre part, au lieu d'essayer de passer l'id, tu peux aussi bien passe this en paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bDevelopperPiece.OnClientClick = "alerter(this);";
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function alerter(elem) {
            var $MonEquipement = $(elem);
            $MonEquipement.fadeOut();
            return false; // Ce return ne sert à rien non plus...
    };
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Membre actif
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Points : 286
    Points
    286
    Par défaut
    oui comme ca c'est encore mieux ^^

    une petite question, a quoi servent les $ dans $MonEquipement ?

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par ticroch
    une petite question, a quoi servent les $ dans $MonEquipement ?
    A vrai dire, c'est parfois une confusion avec le nommage des variables en PHP, cependant, c'est aussi devenu une habitude chez certains développeurs jQuery pour pouvoir identifier facilement les variables représentant un objet jQuery
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre actif
    Inscrit en
    Décembre 2009
    Messages
    282
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 282
    Points : 286
    Points
    286
    Par défaut
    c'est aussi devenu une habitude chez certains développeurs jQuery pour pouvoir identifier facilement les variables représentant un objet jQuery
    ouais c'est pas bête comme trucs, je n'y avais jamais pensé merci pour cette explication

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2011
    Messages : 31
    Points : 27
    Points
    27
    Par défaut
    Tout d'abord, le code ASP, c'est bien joli mais on s'en moque royalement : JavaScript s'exécute coté client, c'est donc le code HTML généré qui est utile !
    ça a quand même son importance puisque je veux passer un élément comme paramètre.
    Mais effectivement, pour faire disparaître le bouton sur lequel je click, alerter(this) suffit.

    Par contre, si je veux que ce soit d'autres éléments qui disparaissent ou réapparaissent sur le clic du bouton, comment je peux faire ? Je pensais qu'en indiquant l'ID de l'élément à faire disparaître ou apparaître.

    J'ai dans mon code ASP :
    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
     
    Panel pListeEqt=new Panel();
    pListeEqt.ID = "DivListEqt" + inumPiece.ToString();
    pListeEqt.CssClass = "divListEqt";
     
    inumEqt=0;
    foreach (Equipement MyEquipement in MyPiece.Eqts)
    {
        inumEqt++;
        Panel pEqt = new Panel();
        pEqt.ID = MyEquipement.Name + inumEqt.ToString();
        pEqt.CssClass = "pequipement";
        Label lEqtDesc = new Label();
        lEqtDesc.CssClass = "lnomequipement";
        lEqtDesc.ID = "Nom" + MyEquipement.Name + inumEqt.ToString();
        lEqtDesc.Text = MyEquipement.Name;
     
        pEqt.Controls.Add(lEqtDesc);
        pListeEqt.Controls.Add(pEqt);
    }
    Donc j'ai un panel pListeEqt qui englobe plusieurs panel pEqt.

    Mon bouton est en-dehors de pListeEqt, mais le bouton et pListeEqt sont dans un même panel. Je veux que chaque bouton créé puisque faire apparaître ou disparaître la pListeEqt adéquat.

    Quel paramètre je mets dans l'appel de la fonction alerter(...)?
    Ou faut-il que je m'y prenne autrement ?

    Merci à vous

  8. #8
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par jmatys
    Par contre, si je veux que ce soit d'autres éléments qui disparaissent ou réapparaissent sur le clic du bouton, comment je peux faire ? Je pensais qu'en indiquant l'ID de l'élément à faire disparaître ou apparaître.
    Tu as déjà eu la réponse...
    Citation Envoyé par ticroch
    Je pense t'as mal compris comment on utilise jQuery ... Pour sélectionner par un identifiant tu utilise # :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function alerter(Texte) {
            var MonEquipement = $('#' + Texte);
            MonEquipement.fadeOut();
            return false;
    };
    Citation Envoyé par Bovino
    * $('' + Texte + '') : cette syntaxe recherche les balises de type "Texte"... je doute qu'il y en ai dans ta page ! Pour rechercher un id, il faut faire précéder d'un "#".
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2011
    Messages : 31
    Points : 27
    Points
    27
    Par défaut
    Merci pour vos réponses.
    Ca fonctionne parfaitement maintenant.

    En fait sur le principe j'avais bien compris, mais avec les joies de l'ASP, je n'avais pas vu qu'un Panel ayant un ID nommé "coucou" était converti en HTML "ContentPlaceHolder_coucou".
    Avec l'outil de développement de Chrome, j'ai pu m'en rendre compte.

    Merci beaucoup.

  10. #10
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    D'où la remarque
    Tout d'abord, le code ASP, c'est bien joli mais on s'en moque royalement : JavaScript s'exécute coté client, c'est donc le code HTML généré qui est utile !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Bâtiment

    Informations forums :
    Inscription : Décembre 2011
    Messages : 31
    Points : 27
    Points
    27
    Par défaut
    mea culpa.

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

Discussions similaires

  1. Tester l'existence d'un paramètre dans une fonction
    Par olivier1978 dans le forum Programmation (La)TeX avancée
    Réponses: 0
    Dernier message: 16/11/2007, 23h10
  2. Réponses: 6
    Dernier message: 24/07/2006, 15h22
  3. Réponses: 3
    Dernier message: 20/03/2006, 17h46
  4. [PL/SQL] Multi paramètre dans une fonction
    Par wiLL_ dans le forum Oracle
    Réponses: 2
    Dernier message: 28/02/2006, 17h31
  5. Réponses: 9
    Dernier message: 13/05/2005, 03h13

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