cs_v1nce
Messages postés16Date d'inscriptionvendredi 13 février 2004StatutMembreDernière intervention12 février 2008
-
8 août 2005 à 16:58
titeoe
Messages postés433Date d'inscriptionsamedi 26 avril 2003StatutMembreDernière intervention 4 décembre 2009
-
9 août 2005 à 08:53
Bonjour,
Je cherche à créer un datagrid par programmation (je ne connais pas à l'avance sa "structure"(nb de colonnes/type) aussi je ne peux pas rentrer les infos en dur dans l'"interface")
ce que je cherche à faire c'est obtenir une colonne de checkbox (dans le datagrid) là ou j'avais une colonne de booleen dans ma datable.
DataTable toto = new DataTable();
toto.Columns.Add(new DataColumn("Boolean", typeof(Boolean)));// c'est juste pour l'exemple ; en réalité je ne connais pas -a priori- le nombre de colonnes
/*
est-ce qu'il faut aller taquiner les template-column ? (ou seraient-ce plutôt les boundcolumns ?)
titeoe
Messages postés433Date d'inscriptionsamedi 26 avril 2003StatutMembreDernière intervention 4 décembre 20091 9 août 2005 à 08:53
Bonjour,
A ta place j'utiliserai les template collumns, c'est tres puissant et tres instructif (si tu veux progresser).
Tu définit une template collumn dans ton datagrid et ensuite pour la remplir tu écrit dans le code de la méthode itemDataBound de ton datagrid quelque chose du style :
if ( (dataview)mavue.items["maColoneDeBoleens"] )
((CheckBox)e.item.findcontrol("monCheckBox)).checked = true ;
traduction :
Pour chaque ligne de ta dataview (ou datatable si tu bind sur une datable) tu va regarder la valeur de ta colones booleene et si elle est a 1 alors tu va rechercher dans la collection de controles de ton datagrid le controle "monCheckBox". Ensuite tu le met a checked = true.
Tu est obligé de caster en checkbox car le findcontrol() te ramenne un type system.web.UI.webcontrol.
Il y a peut etre une méthode plus simple (sans passer par les templates collumns) mais personnellement je n'utilise que ca car cela permet de faire des datagrids complexes tres propres et tres bien bindés.