Urgent / Evènement OnClick sur les boutons dynamiques [Résolu]

Signaler
Messages postés
24
Date d'inscription
jeudi 20 septembre 2007
Statut
Membre
Dernière intervention
8 février 2008
-
Messages postés
24
Date d'inscription
jeudi 20 septembre 2007
Statut
Membre
Dernière intervention
8 février 2008
-
Bonjour,

J'ai créé des boutons dynamiquement .
Ensuite je voudrais que quand je clique sur un bouton, un certain événement se déclenche (une fonction) selon le texte du bouton.
Je ne sais pas comment ça se fait avec les boutons dynamiques (le nombre des boutons varie).

Merci pour votre aide.

7 réponses

Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Voici un autre exemple
pour ajouter un click sur le bouton qui fonctionne en web

 this.calculer.Click += new System.EventHandler(this.Calculer_Click);
private void Calculer_Click(object sender, System.EventArgs e)

Quelle est la raison de ne pas utiliser des controle de type repeater / multiview / grid ....
Normalement c'est contrôle réponde à 90% des problèmes car il est possible de surcharger en plus la plupart de leurs méthodes.
directement ou en les dérivant
Bon courage
Messages postés
24
Date d'inscription
jeudi 20 septembre 2007
Statut
Membre
Dernière intervention
8 février 2008

N.B : J'utilise C# comme code.


Merci pour tout aide.
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
28
Salut

Il faut que ajoutes l'evenement

voici un exemple en windows form
     private void Form1_Load(object sender, EventArgs e)
        { 
    for (int i = 0; i <= 10; i++)
            {
                Button bt = new Button();
                bt.Name = "button"+i;
                bt.Top = i * 20;
                bt.Click += this.Button_Click;
                this.Controls.Add(bt);
            }
        }

        public void Button_Click(object sender, EventArgs e)
        {
            MessageBox.Show((sender as Button).Name);
        }

Bon courage
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
Bonjour,

comme je le repete quasi tous les jours : ne jamais utilisé des contrôles dynamiques à moins de connaitre parfaitetement le cycle de vie des contrôles ASP.net ...

Bref, dans la plupart des cas tu peux résoudre ton pb en utilisant des repeater / multiview / panel / placeholder / ...

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
Messages postés
24
Date d'inscription
jeudi 20 septembre 2007
Statut
Membre
Dernière intervention
8 février 2008

Bonjour,
Je t'assure que si je pouvais utiliser un autre contrôle je le ferais , mais dans ce cas je me trouve obligé.

nhervagault merci pour ton aide mais ça me donne l'erreur suivant :

La méthode Button_Click(object, System.EventArgs)' est référencée sans parenthèses.
Qu'est-ce que je dois donner comme paramètre à cette fonction?

Bonne journée à tous.
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
hériter de BaseDataBoundControl répond à 100% des problèmes où il faut inclure plusieurs controles dynamiquement

<hr />Cyril - MSP - MCPD ASP.net & MCTS SQL - Consultant indépendant
Messages postés
24
Date d'inscription
jeudi 20 septembre 2007
Statut
Membre
Dernière intervention
8 février 2008

Je procède à cette façon parceque j'arrive pas à faire la même chose avec un autre contrôle. En fait ce que je voulais faire est le suivant :
J'ai une liste déroulante qui contient plusieurs groupe (des centaines).
Je veux faire un truc qui ressemble aux onglets dans Excel. Lorsque je clique sur un groupe, un bouton avec son nom apparaît en dessous, de cette façon j'aurai plusieurs groupes (des boutons) , je peux alors naviguer, cliquer sur le bouton pour avoir certaines données.
Je connais pas le nombre de groupes que je vais choisir, pour cela je procède à créer les boutons dynamiquement.
Ca peut vous paraître un peu bête, mais j'avez rien d'autre dans la tête.
Merci pour toute suggestion.