DataValueField et DataTextField [Résolu]

Signaler
Messages postés
47
Date d'inscription
vendredi 18 novembre 2005
Statut
Membre
Dernière intervention
3 septembre 2012
-
Messages postés
4
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
5 septembre 2009
-
Bonjour
Est il possible d'avoir un exemple d'utilisation de DataValueField et DataTextField appliquées à un contrôle ListBox?
Merci d avance

4 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
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
Messages postés
47
Date d'inscription
vendredi 18 novembre 2005
Statut
Membre
Dernière intervention
3 septembre 2012

Excellent!!!!!!!!!Très claire explication....
Messages postés
4
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
5 septembre 2009

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);

(...)
Messages postés
4
Date d'inscription
lundi 24 août 2009
Statut
Membre
Dernière intervention
5 septembre 2009

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.