Pb pour remplir un CheckListBox avec les données résultant d'un DataView.

PeTeRsLaStAr Messages postés 158 Date d'inscription samedi 22 juin 2002 Statut Membre Dernière intervention 27 juin 2015 - 5 janv. 2006 à 13:38
PeTeRsLaStAr Messages postés 158 Date d'inscription samedi 22 juin 2002 Statut Membre Dernière intervention 27 juin 2015 - 5 janv. 2006 à 13:56
Bonjour.

Mon pb est le suivant...
Je souhaiterais remplir les données résultant d'un dataview dans mon CheckListbox.
Auparavant, j'utilisais le bout de code suivant pour remplir les données à partir d'une table, et cela marchait sans souci.

Actuellement, j'arrive à remplir mon listBox avec les données de mon Dataview, le souci c'est que ces données ne sont pas 'filtrées'... C'est à dire qu'il en prend allègrement pas compte de mon RowFilter rentré en paramètre. En gros, je lui fournirais directement le DataTable non filtrée, ça serait pareil...

Pour être sur que mon DataView était bien effectif, j'ai rempli parallèlement un DataGrid qui tient bien compte du RowFilter...

Donc ma question est : Est ce que le code diffère du remplissage à partir d'une table, lorsque l'on souhaite remplir un CheckListBox avec un DataView "filtré" ? Ou est ce qu'il nest tout simplement pas possible de remplir un CbL à partir d'un Dv ?

Ci dessous mon code actuel.

(clbUser est ma CheckBoxList, et DvUsers et mon dataview)
(...)

clbUser.Items.Clear();



for (
int i = 0; i < DvUsers.Table.Rows.Count; i++)


{


DataRow drow = DvUsers.Table.Rows[i];


clbUser.Items.Add(drow["USER_NOM"].ToString(),true
);


}


}


clbUser.Refresh();

(...)

Quelqu'un aurait il une idée ?

****************************************************
Il n'y a pas de pb sans solutions : il faut juste trouver le temps pour les chercher

4 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
5 janv. 2006 à 13:43
et en passant par un databinding ?

clbUser.DataSource = dvUsers;
clbUser.DataTextField = "USER_NOM";
clbUser.DataValueField = "ton champs booleen";

Sébastien FERRAND
[MVP C#]
0
PeTeRsLaStAr Messages postés 158 Date d'inscription samedi 22 juin 2002 Statut Membre Dernière intervention 27 juin 2015 1
5 janv. 2006 à 13:45
Je n'ai pas accès à la propriété DataSource...
Je ne sais pas si c'est une modif de .Net 2.0 mais si c'est le cas, je suis tjrs en 1.1

Je parle bien d'un CheckListBox et non pas d'un datagrid simple...

****************************************************
Il n'y a pas de pb sans solutions : il faut juste trouver le temps pour les chercher
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
5 janv. 2006 à 13:50
comment crées-tu ton dataview ?

Sébastien FERRAND
[MVP C#]
0
PeTeRsLaStAr Messages postés 158 Date d'inscription samedi 22 juin 2002 Statut Membre Dernière intervention 27 juin 2015 1
5 janv. 2006 à 13:56
Mon dataview est bindé à un DataSet qui est fillé au début du code.

DvUsers.Table=DsMyRequete.MaTable;
(...)
//Chargement au début de l'appli
ocmdDataMyRequete.Fill(DsMyRequete);
(...)
//Paramétrage du DvUsers
DvUsers.RowFilter=" MonNomDeColonneFiltrée=1";

Puis la suite est au dessus.

Je pense que mon DvUsers est correctement rempli, mais verrais plutot une piste au niveau de l'accès/l'emplacement des données... Voire mm : est ce possible tout simplement ? sans faire une manip genre une retranscription dans un DataSet par exemple...

Un truc que je trouve étrange, est que dans l'explorateur d'espions, sur mon DvUsers, je trouve deux fois Table...
Un premier .Table qui contient ma table de base (non filtrée), et un autre .table (sans la majuscule donc), qui contiendrait les bonnes données, filtrées donc.

Le souci est que lorsque je tente d'accéder directement à .table et non pas .Table il me dit que c'est protected, et que je n'y ai pas accès à la compil...

Est ce une piste ?

****************************************************
Il n'y a pas de pb sans solutions : il faut juste trouver le temps pour les chercher
0
Rejoignez-nous