cycofred0
Messages postés6Date d'inscriptionlundi 28 août 2006StatutMembreDernière intervention11 décembre 2007
-
26 oct. 2006 à 10:34
cs_Nurgle
Messages postés1642Date d'inscriptionsamedi 6 novembre 2004StatutMembreDernière intervention28 avril 2011
-
26 oct. 2006 à 12:29
Bonjour à tous,
Je cherche à générer en ASP.NET des user controls dont le nombre n'est pas connu à l'avance (car fonction de valeurs dans SGBD). Question : est-il possible de générer ces controls en leur donnant comme ID les valeurs contenues dans cette base ?
Exemple : une base avec une table contenant comme valeurs : titi / grosminet / donald.
Je souhaiterais générer 3 controles :
cs_Nurgle
Messages postés1642Date d'inscriptionsamedi 6 novembre 2004StatutMembreDernière intervention28 avril 20114 26 oct. 2006 à 10:48
Salut,
Mets un PlaceHolder à l'endroit où tu veux ajouter dynamiquement tes contrôles, et fait le via le code.
Exemple, dans une boucle :
Dim MaDrop As New DropDownList()
MaDrop.ID = "cequejeveux"
MonPlaceHolder.Controls.Add(MaDrop)
Et comme ça tu choisis l'ID en fonction de ta table, ou de ce que tu veux...
Attention : tous les ajouts dynamiques de contrôles doivent se faire dans le Page_Init !
cycofred0
Messages postés6Date d'inscriptionlundi 28 août 2006StatutMembreDernière intervention11 décembre 2007 26 oct. 2006 à 11:45
Merci bcp.
Le prob arrive quand les controles ne doivent pas être au même endroit de la page (dans des "<td>" avec libellés, etc...) :
on se retrouve avec un nombre dynamique de Placeholders à créer, pas drole...
Je crois que je vais le faire en bon vieil ASP avec des controls HTML + javascript généré à la volée
cs_Nurgle
Messages postés1642Date d'inscriptionsamedi 6 novembre 2004StatutMembreDernière intervention28 avril 20114 26 oct. 2006 à 12:29
Bah non, aucun problème : Tu ajoutes à ta page un System.Web.UI.HtmlControls.HtmlTable, et tu génères aussi par code les Rows de ton tableau html.
Dans ta boucle :
- Tu ajoute une ligne à la HtmlTable.
- Tu fais un .Controls.Add() sur une cellule de la ligne (au lieu de le faire sur un PlaceHolder).