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 :

comment gerer un evenement d' un composant qui est crée dynamiquement ds un autre eventhandler


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 39
    Points : 15
    Points
    15
    Par défaut comment gerer un evenement d' un composant qui est crée dynamiquement ds un autre eventhandler
    bonsoir à tous,

    voici mon probleme, je me demande si je peux gerer un évènement qui est crée dynamiquement ds le gestionnaire d'evenement d' un autre élèment ! euuh je ne sais pas si je suis clair voici le code

    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
    21
    22
    23
     
     
        protected void Page_Load(object sender, EventArgs e)
        {
     
     
     
        }
     
    // b_Click1 est le eventhandker d un bouton 
        protected void b_Click1(object sender, EventArgs e)
        {
     
             Button b= new Button();
            b.Click+=new EventHandler(b_Click2);
     
     
        }
     
        void b_Click2(object sender, EventArgs e)
        {
            TextBox1.Text = "hahahaah";
        }

    c 'est normal ici que le code n entre jamais ds b_click2 puisque au moment du page_load cet objet n existe plus puisque crée ds b_click1, mais alors comment faire si je veux gerer un evenement de type click sur un bouton par exemple mais que ce bouton est crée dynamiquement ds un autre gestionnaire. Est ce techniquement possible ou je raconte vraiment n importe quoi

    Peace

  2. #2
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Bonjour,

    En fait ce problème est inhérent à la création dynamique de contrôle au sein d'une page ASP.NET. Il te faut recréer ton bouton à chaque chargement de page. Du coup les abonnements aux évènements sont toujours présents lors de l'exécution du Page_Load.

    Pour résumer : dans ta méthode b_Click1 tu créés pour la première fois ton bouton b, puis tu sauvegardes cela quelque part, dans le ViewState par exemple. Ensuite, au chargement de ta page, tu checkes le ViewState pour voir si tu dois recréer le bouton ou non.

    En espérant t'avoir aidé.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 39
    Points : 15
    Points
    15
    Par défaut
    oui merci, explication tres claire.

    par contre je ne sais pas du tout manipuler cet objet viewstate, comment je le recupere ds le page_load et quelles proprietes ou methodes utilisées...

    je suis preneur de toutes documentation sur le sujet

    merci beaucoup.

  4. #4
    Expert confirmé
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Points : 4 066
    Points
    4 066
    Par défaut
    Bonjour,

    Le ViewState est à utilisé comme l'objet Session, comme un dictionnaire. Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    protected int MaPropriete    
    {         
        get{return (int)ViewState["MaPropriete "];}        
        set{ViewState["MaPropriete "] = value;}     
    }
    Pour avoir un exemple sur l'ajout dynamique, tu en as un ici, ou ici. Sinon les mots-clés "ASP.NET Dynamic Control Viewstate" devraient t'en renvoyer d'autres.

    En espérant t'avoir aidé.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 39
    Points : 15
    Points
    15
    Par défaut
    Parfait!

    les deux articles expliquent bien le problème.

    Merci bien

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

Discussions similaires

  1. comment gerer l'evenement "window.close" en java
    Par facilus68 dans le forum JSF
    Réponses: 1
    Dernier message: 22/06/2009, 22h08
  2. comment gerer 2 evenement
    Par jayjay.f dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 02/05/2007, 10h06
  3. Réponses: 5
    Dernier message: 18/01/2007, 20h09
  4. Réponses: 2
    Dernier message: 26/11/2006, 10h51
  5. Réponses: 3
    Dernier message: 11/07/2006, 13h43

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