DataValueField et DataTextField [Résolu]

Messages postés
47
Date d'inscription
vendredi 18 novembre 2005
Statut
Membre
Dernière intervention
3 septembre 2012
- - Dernière réponse : Miczka
Messages postés
4
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
5 septembre 2009
- 26 août 2009 à 10:09
Bonjour
Est il possible d'avoir un exemple d'utilisation de DataValueField et DataTextField appliquées à un contrôle ListBox?
Merci d avance
Afficher la suite 
A voir également:

4 réponses

Meilleure réponse
Messages postés
6827
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
16
3
Merci
DataTable datas = new DataTable();
datas.columns.add("Label");
datas.columns.add("ID");

...

LaListBox.DataSource = datas;
LaListBox.DataTextField = "Label";
LaListBox.DataValueField = "ID";
LaListBox.DataBind();

Ces 2 propriétés permettent de connaitre quelle propriété du datasource la listbox doit utiliser pour afficher le text (DataTextField) et la valeur (DataValueField). Quelques soit la source de données (collection typé, DataReader, DataTable) il faut qu'elle contiennent les 2 propriétés renseignés dans DataTextField et DataValueField pour que ton listbox puisse afficher les items.

Ensuite tu pourras recuperer facilement l'item selectionné en faisant LaListBox.SelectedItem.Text qui correspondra a la propriété Label du datasource de la ligne selectionné et LaListBox.SelectedItem.Value qui correspondre a la propriété ID du datasource de la ligne selectionné.

<hr />Cyril - MVS - MCP

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jesusonline
Messages postés
47
Date d'inscription
vendredi 18 novembre 2005
Statut
Membre
Dernière intervention
3 septembre 2012
0
Merci
Excellent!!!!!!!!!Très claire explication....
Commenter la réponse de Paramba
Messages postés
4
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
5 septembre 2009
0
Merci
Bonjour à tous,

Je suis nouveau ici, débutant en C#.
Je me permets de remonter ce topic car il correspond assez bien à la question que je vais poser.
S'il est préférable de lancer un nouveau sujet pour ce genre de cas, je m'en excuse d'avance, je ne connais pas encore les habitudes de ce forum.

Mon problème :
je crèe plusieurs checkboxlist dynamiquement au sein d'une table.
(une checkboxlist par ligne).
A l'affichage, mes données entrées en DataValueField s'affichent à côté de mes checkbox (comme si je les avais assignées à un DataTextField): je voudrais éviter cela. Et donc arrivée à un affichage avec les Checkbox seules, sans texte à côté.
Voici le code.

(...)
            for (int i = 0; i < datb2.Tables[0].Rows.Count; i++)
            {
                // création rows et cellules
                TableRow row = new TableRow();
                TableCell cell = new TableCell();
                TableCell cell2 = new TableCell();
                cell.Text = "" + datb2.Tables[0].Rows[i][3].ToString()+"";
                //création cblist
                CheckBoxList cbl = new CheckBoxList();
                cbl.ID = "q2_b_2" + datb2.Tables[0].Rows[i][6].ToString();
                cbl.DataSource = bddu4.selectDonnee("q2_b_1", Request.QueryString["langue"].ToString(), Request.QueryString["pays"].ToString());
                cbl.DataValueField = "ordre";
                cbl.DataBind();
                cell2.Controls.Add(cbl);

(...)
Commenter la réponse de Miczka
Messages postés
4
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
5 septembre 2009
0
Merci
Ma question n'a pas eu trop de succès.
Je publie quand même la solution :

voici le code utilisé pour régler le problème

 cbl.Font.Size = FontUnit.Point(0);  

cbl.Font.Size = FontUnit.Point(0);



Il doit y avoir une solution plus élégante, mais ceci fonctionne.
Commenter la réponse de Miczka