Déclenchement d'un événement d'un LinkButton ajouté dynamiquement

DarkChaos8R Messages postés 2 Date d'inscription vendredi 12 juin 2009 Statut Membre Dernière intervention 30 septembre 2010 - 27 sept. 2010 à 10:59
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 30 sept. 2010 à 12:03
Bonjours à tous,

je suis actuellement sur un problème qui me donne du fil à retordre, je m'explique:
je récupère depuis une base de données un string sous la forme suivante : nomDuDocument,typeDocument;nomDuDocument,typeDocument... pour autant de document liés dans une table de relation.
Le but est d'afficher un lien dans une GridView permettant d'ouvrir ce document (c'est la que le typeDocument rentre en jeu pour trouver sa position sur le serveur...)
Mon problème est le suivant:
je ne peux pas mettre la création des boutons dans le Page_Init ni dans le code aspx car les données sont peut être présente ou non et il peut y en avoir plusieurs (table de relation). Pour le moment j'ajoute ces LinkButton dans le RowDataBound de ma GridView mais je pense d'après moi qu'il est trop tard pour pouvoir récupérer l'événement ensuite ou alors je me trompe ?? J'ai juste besoin que l'événement du linkbutton soit déclanché...

voici comment je crée un linkbutton et je l'ajoute dans la gridview
LinkButton linkbutton = new LinkButton(); 
linkbutton.Text = nomDuDocument+"
";
linkbutton.CommandName = typeDocument;
linkbutton.EnableViewState = true;
linkbutton.CausesValidation = false;
linkbutton.Click += new EventHandler(bOpenFile_Click);
e.Row.Cells[11].Controls.Add(linkbutton);

3 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
29 sept. 2010 à 10:25
Bonjour,

D'experience, les contrôles dynamiques sont une des principales causes d'erreurs en ASP.net.

Pourquoi ne pas mettre ton linkbutton dans un CellTemplate de ton gridview ? Si tu as besoin de cacher des choses en fonction du type de ta ligne, tu peux utiliser un multiview, il est la pour ca.


____________________________________________
Cyril - MVP ASP.net - webSite
0
DarkChaos8R Messages postés 2 Date d'inscription vendredi 12 juin 2009 Statut Membre Dernière intervention 30 septembre 2010
30 sept. 2010 à 11:38
Hello,

Oui pour le moment j'ai choisis ta solution, enfin en mettant plusieurs linkbuttons dans la cellule et les afficher s'il on besoin de l'être, le seul problème c'est que le nombre de linkbutton n'est pas "infini" vu qu'ils doivent quand même être en dur dans la page aspx. Pour le moment cela marche comme ca si besoin est je n'ai juste qu'à rajouter des linkbuttons...

Merci de ta réponse !

Bonne journée
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
30 sept. 2010 à 12:03
Bonjour,

tu peux alors utiliser un repeater dans ta cellule. Cela permettra d'avoir un nombre de linkbutton "infini"

____________________________________________
Cyril - MVP ASP.net - webSite
0
Rejoignez-nous