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 :

Problème passages de paramètres à une fonction dans OnClientClick


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 31
    Par défaut Problème passages de paramètres à une fonction dans OnClientClick
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Button runat="server" OnClick="LibererLit" OnClientClick="Test('<%=Ds.Tables(0).Rows(i)("nodos")%>')" Text="LIBERER"  />


    Or cela ne MARCHE Pas ! Impossible de trouver le moyen d'insérer des <%%> dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OnClientClick="Test(...)"
    ... alors que si je rentre en "dur" par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OnClientClick="Test('8700977')"
    cela marche bien



    Sachant que Test() c'est une fonction javascript :



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <script language="javascript" type="text/javascript">
    	function Test( nodos )
    	{
    		var boolTest;
    		document.getElementById("toto").value = nodos;
     
    	}
    </script>




    Une solution donc pour passer en paramètre un truc en <%%> ou alorsplus largement comment cliquer sur un bouton et lors de ce click exécuter une fonction dans le code behind en lui passant 2 paramètres... (qui ne peuvent pas être globaux je précise)

  2. #2
    Membre éclairé
    Avatar de Etanne
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2003
    Messages
    469
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 469
    Par défaut
    Bonjour,

    Vous pouvez tester cela avec # :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    OnClientClick='<%# string.Format("Test(\"{0}\")",Ds.Tables(0).Rows(i)("nodos"))%>'
    Etanne

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 31
    Par défaut
    Merci de la réponse mais...Toujours des problèmes : cf la pièce jointe...
    Images attachées Images attachées  

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2005
    Messages : 165
    Par défaut
    Bonjour,

    Si je comprends bien ton bouton est un webcontrol "list" (gridview et autre repeater).

    Essaye dans ton code behind sur l'évènement "DataBinding" (à correspondre avec ton composant) d'ajouter à ton bouton un attribut "OnClick".
    Cela donnera qqch comme ça :
    btn.Attributes.Add("onclick", String.Format("alert({0})", ligneEnCours["nodos"])

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2012
    Messages : 31
    Par défaut
    Oula, désolé je n'ai vraiment pas tout compris entre tes data binding, repeater etc... ?!

    Mon bouton c'est un simple <asp:button> sur lequel je voudrais simplement exécuter une fonction prenant deux parametre à chaque fois qu'on clique dedans !!

    C'est dingue qu'il n'y ai pas un moyen simple de faire ça. Si vous avez un autre moyen plus simple pour le faire je suis preneur.

    Donc je répète pour résumer les choses :
    je crée une liste de personnes dans une boucle for avec nom, prénom (à partir d'un DataSet récupéré suite à une requette sql) et un bouton pour chaque ligne qui devrait me permettre de lancer une fonction dans mon code behing qui prend deux paramètre (des parametre qui changent biensur pour chaque ligne et itération de la boucle for)...

    Me suis-je bien fait comprendre ?

    Merci

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2005
    Messages
    165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Novembre 2005
    Messages : 165
    Par défaut
    Excuses moi mais là c'est mieux expliqué, parce que ton exemple de départ présentait un AspButton avec un appel JS à la fonction "Test" et un appel codeBehind de la méthode "LibererLit".

    Disons que pour créer ta liste de personnes (nom,prénom et boutons), tu utilises un Repeater :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        <asp:Repeater ID="rpt" runat="server" onitemcommand="rpt_ItemCommand" onitemdatabound="rpt_ItemDataBound" >
            <ItemTemplate>
                <asp:Label ID="lbl" runat="server" />
                <asp:Label ID="lbl2" runat="server" />
                <asp:Button ID="btn" runat="server" CommandName="action" />
            </ItemTemplate>
        </asp:Repeater>
    Pour réaliser ton besoin, je te propose la chose suivante :
    1. ajouter l'évènement "ItemDataBound" au repeater pour ajouter à la propriété "CommandArgument" chaque bouton de chaque ligne tes 2 paramètres
    2. ajouter l'évènement "ItemCommand" au repeater permettant de réaliser une action précise pour la commande "action" (c'est un exp parce que j'ai mis CommandName="action" sur le bouton.



    Ça doit être un peu plus claire comme ça.

Discussions similaires

  1. Réponses: 10
    Dernier message: 02/02/2007, 16h00
  2. Passage de paramètre à une fonction dans un G_CALLBACK
    Par Dimitri_87 dans le forum GTK+ avec C & C++
    Réponses: 5
    Dernier message: 15/09/2006, 11h04
  3. Réponses: 3
    Dernier message: 18/08/2006, 10h20
  4. [PL/SQL] : Passage de paramètres à une fonction
    Par dcollart dans le forum Oracle
    Réponses: 5
    Dernier message: 13/07/2006, 10h17
  5. Réponses: 7
    Dernier message: 12/03/2006, 21h18

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