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 :

asp: savoir quel bouton a envoyer l'événement click


Sujet :

ASP.NET

  1. #1
    Invité
    Invité(e)
    Par défaut asp: savoir quel bouton a envoyer l'événement click
    Bonjour à tous

    Après des heures à essayer, à chercher sur internet, je n'en peux plus, je viens demander de l'aide:

    j'ai une page web qui liste des fichiers se trouvant dans un répertoire, pour chaque fichier on doit avoir un bouton permettant d'effacer ce fichier.
    Bien sur le nombre de fichiers (et donc de bouton) est inconnu, çà doit etre dynamique.

    J'utilise çà pour créer les boutons à partir de la liste de fichiers "files" :

    for (int i = 0; i < files.Length; i++)
    {
    <asp:Button ID="Button" OnClick="deleteFile" Text="Effacer le fichier" runat="server" />
    }

    et çà pour recevoir les événements :
    void deleteScript(Object sender, EventArgs e)
    {
    }

    Ma question: comment faire pour savoir dans l'événement quel bouton a été appuyé ? Je voulais donner un nom dynamique "Button1", "Button2", etc pour me permettre de savoir, mais çà me semble impossible à faire

    aidez moi , pitié !!!

    merci à tous !

  2. #2
    Membre confirmé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Points : 637
    Points
    637
    Par défaut
    Essaye de faire un cast de ton parametre sender , et donne un ID differents a chaque bouton.

    Button oButton = sender as Button;
    if(oButton!=null)
    string IdButton = oButton.ID

    Tu devrais avoir l'id de ton button, donc l'id du bouton qui a generé le click.

    Sinon regarde avec les commandName.

  3. #3
    Invité
    Invité(e)
    Par défaut
    et comment donner un ID différent à chaque bouton ?

  4. #4
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 254
    Points
    28 254
    Par défaut
    bah quand tu le crées, tu lui donne un ID différent, c'est tout.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:Button ID="Button+valeur que tu veux"

  5. #5
    Invité
    Invité(e)
    Par défaut
    oui mais comme je disais j'ai besoin de créer mes boutons dynamiquement, car je ne sais pas à l'avance combien il y en aura

    j'aurais bien voulu faire çà :
    for (i=0; i<4; i++)
    {
    <asp:Button ID="Button"+i ... >
    }

    mais çà n'est pas accepté (ou je ne connais pas la bonne syntaxe)

  6. #6
    Rédacteur
    Avatar de Louis-Guillaume Morand
    Homme Profil pro
    Cloud Architect
    Inscrit en
    Mars 2003
    Messages
    10 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Cloud Architect
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 10 839
    Points : 28 254
    Points
    28 254
    Par défaut
    commences par lire les règles du forum, ca te permettra d'apprendre comment utiliser les balises code

    ensuite, on a aucune chance de t'aider avec si peu d'informations et ca à pas l'air très très propre tout ca
    pourquoi ne pas utiliser une grille avec une colonne affichant le nom du fichier et à côté une colonne bouton qui s'occupera de toute la mécanique de création dynamique?

  7. #7
    Membre confirmé
    Avatar de topolino
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 901
    Points : 637
    Points
    637
    Par défaut
    Sinon dans ta boucle tu fais :

    Button oButton = new Button();
    oButton.ID = "button" + 1



    Et tu les ajoute a un placeholder.

    placeholder.cControls.Add(oButton)

  8. #8
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 288
    Points : 375
    Points
    375
    Par défaut
    Petit exemple pour te montrer comment tu peux faire :

    default.aspx
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <asp:TextBox ID="TextBoxTest" runat="server" Width="500" />
    <asp:Panel ID="panel" runat="server" />
    default.aspx.cs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    protected void Page_Load(object sender, EventArgs e) {
     
        for (int i = 0; i <= 4; i++) {
             Button b = new Button();
             b.Text = "Supprimer";
             b.Click += Click_Me;
             b.ID = "Button" + i.ToString();
            panel.Controls.Add(b);
        }
    }
      void Click_Me(object sender, EventArgs e) {
           TextBoxTest.Text = "Vous avez cliqu‚ sur : " + (sender as Button).ID;
       }
    Après je penses que tu vas sans doute passer par une Grille ou un repeater pour mettre en page tes données.

  9. #9
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    la bonne solution pour faire ce genre de choses est d'utiliser un repeater

  10. #10
    Invité
    Invité(e)
    Par défaut
    finalement en se passant de <asp:button ...> et en faisant du java script c'est plus simple :

    for (int i=0; i<4; i++)
    Response.Write("<input type=button onClick=monevent() id=" + i + ">");

    Là au moins on peut créer dynamiquement des boutons et leur assigner une ID qui permet de les différencier ensuite dans l'event.

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

Discussions similaires

  1. Savoir quel bouton a été cliqué
    Par crischprolch dans le forum Langage
    Réponses: 3
    Dernier message: 28/06/2007, 09h24
  2. C# Savoir quel bouton est cliqué.
    Par onizuka159 dans le forum Général Dotnet
    Réponses: 8
    Dernier message: 22/05/2007, 06h58
  3. (newbie)savoir quel bouton a appelé une fonction
    Par tibtibby dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/06/2006, 16h50
  4. [D7] comment savoir quel bouton appelle ma form ?
    Par dleu dans le forum Langage
    Réponses: 8
    Dernier message: 21/03/2006, 08h20
  5. [C#] Savoir quel bouton a déclenché l'évènement
    Par Amerok dans le forum ASP.NET
    Réponses: 4
    Dernier message: 01/12/2005, 15h19

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