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 :

Ajouter un événement sur un UserControl


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 18
    Par défaut Ajouter un événement sur un UserControl
    Bonjour,

    Avant de poster j'ai chercher sur le forum ASP.net ... :p

    Donc j'ai créer un UC qui contient des panels et des labels...
    ce UC est créé dynamiquement dans mon app.

    J'aimerais déclencher un événement onClick sur mon UC.
    Sur le controle utilisateur lui meme pas sur un de ses controls.

    si vous avez une idée... je suis preneur bien sûr.


    Bonne soirée

    Jerome

  2. #2
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    tu peux peut etre le mettre sous forme d'un hyperlink?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 18
    Par défaut
    Je sais pas trop,

    J'ai rajouté un button dans mon UserControl.
    Le fait est que je génére dynamiquement une vingtaine d'instance de cet user control.
    Et dans ma page aspx où sont générés les UserControl je n'intercepte pas les évenements des UserControls (quand le bouton est cliqué).

    j'aimerai que lorsque qu'un de mes 20 usercontrol déclanche l'event onclick, ma page aspx qui contient les userControls, intercepte l'event et execute une fonction.

    J'ai ajouté un eventHandler dans mon userControl.
    mais je sais pas comment abonné ma webform aux events des userControls générés dynamiquement...

    je sais pas si je suis bien clair...

  4. #4
    Rédacteur
    Avatar de benji_dv
    Homme Profil pro
    Architecte
    Inscrit en
    Juillet 2005
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 375
    Par défaut
    Bonjour,
    Tu peux faire comme cela, je t'ai fait un exemple avec des boutons générés dynamiquements, tous liés à une même méthode contenue dans ton codebehindC# (chez moi elle s'appelle Button1_Click),

    divZAZA est une div sur ma page Web,

    for (int i=0;i<10;i++){
    System.Web.UI.WebControls.Button bt = new System.Web.UI.WebControls.Button();
    bt.Click += new System.EventHandler(this.Button1_Click);
    bt.Attributes.Add("runat","server");
    divZaza.Controls.Add(bt);
    }

    tu peux aussi géré l'évènement en javascript :
    for (int i=0;i<10;i++){
    System.Web.UI.WebControls.Button bt = new System.Web.UI.WebControls.Button();
    bt.Attributes.Add("onclick","javascript:gereclick()");
    divZaza.Controls.Add(bt);
    }
    sans quoi tu dois avoir une méthode javascript gereclick(), qui va (si tu veut faire un appel serveur) générer un __dopostback ou de l'AJAX.

    voila,
    Benjamin DEVUYST
    Et comme l'a dit Rick Osborne
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live"
    http://bdevuyst.developpez.com
    http://blog.developpez.com/bdevuyst
    www.bdevuyst.com

  5. #5
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Par défaut
    lorsque tu généres tes usercontrols tu ajoutes un evenement supplémentaire dans ta webform dans le codebehind. evenementOnclick += new event(levenementDeMaNouvelleFenetre)

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 18
    Par défaut
    D'abord MERCI,

    ensuite, j'ai donc suivi la 1ere méthode de benji_dv,
    mais a la compile j'ai cette erreur :
    "Aucune surcharge pour 'craDaySelected' ne correspond au délégué 'System.EventHandler'"

    "craDaySelected" c'est ma methode comme ta "this.Button1_Click"...

    Une idée ?

  7. #7
    Rédacteur
    Avatar de benji_dv
    Homme Profil pro
    Architecte
    Inscrit en
    Juillet 2005
    Messages
    375
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 375
    Par défaut
    Oui
    en fait la méthode que tu places dans le new System.eventHandler doit correspondre à la signature des évènements click sur un bouton (la signature est composée du nom de la méthode et de ses paramètres, dans le cas qui nous concerne le problème vien du nombre et du type des paramètres de ta méthode)

    La solution : pour simplifier :

    1. place un bouton sur ta form en mode design, double clic dessus et ca va te créer la méthode dans le code,

    2. tu retournes dans le mode design pour virer le bouton que tu as créé.

    3. tu renommes la méthode qu'il a créé (au point 1) en ce que tu veux comme nom, et tu lance ton code à partir du code de cette méthode.

    4. Dans le new System.eventHandler tu places le nom de cette méthode.

    @+
    Benjamin DEVUYST
    Et comme l'a dit Rick Osborne
    "Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live"
    http://bdevuyst.developpez.com
    http://blog.developpez.com/bdevuyst
    www.bdevuyst.com

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

Discussions similaires

  1. [Débutant] Ajouter des évènements sur des objets dynamiques
    Par fdthierry dans le forum VB.NET
    Réponses: 6
    Dernier message: 30/09/2011, 17h30
  2. Tracking adsense : ajouter un événement sur une iframe
    Par Galdon dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 29/06/2009, 16h07
  3. Gérer les évènements sur un UserControl
    Par wheelshot dans le forum Windows Forms
    Réponses: 10
    Dernier message: 02/04/2009, 15h52
  4. [JTextPane] Ajouter un évènement souris sur un mot
    Par soad dans le forum AWT/Swing
    Réponses: 12
    Dernier message: 20/03/2007, 15h12
  5. [C#]Ajouter un événement sur un UserControl
    Par jbourgeais dans le forum ASP.NET
    Réponses: 1
    Dernier message: 11/01/2007, 19h20

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