cs_Tinio
Messages postés11Date d'inscriptionmercredi 18 février 2004StatutMembreDernière intervention 7 juillet 2006
-
26 juin 2006 à 14:23
cs_Tinio
Messages postés11Date d'inscriptionmercredi 18 février 2004StatutMembreDernière intervention 7 juillet 2006
-
7 juil. 2006 à 16:49
Bonjour,
J'ai un DataSet contenant + de 1000 entrées.
Je le lie à un DataGridView.
J'aimerais effectuer une sorte de pagination du DataGridView.
C'est-a-dire que j'aimerais afficher les entrées par 50 (max)
Comment je peux dire au DataGridView qu'il ne doit pas tout afficher ?
Dois-je créer une autre table dans mon DataSet qui, elle, ne comportera
que 50 entrées ?
cs_Tinio
Messages postés11Date d'inscriptionmercredi 18 février 2004StatutMembreDernière intervention 7 juillet 2006 6 juil. 2006 à 12:04
Ca y est,
je recupere le DefaultView de la DataTable, j'en fais une copie (ne semble pas fonctionner sinon) et je la trie.
Bon, ok, il faut retransformer cette DataView en DataTable mais ca fonctionne.
A part le fait que j'ai réellement l'impression de "bidouiller" pour pouvoir faire une pagination d'une DataTable.
woot6768
Messages postés393Date d'inscriptionmercredi 8 mars 2006StatutMembreDernière intervention23 mars 2007 26 juin 2006 à 15:46
Bonjour,
Je ne sais pas si cette solution est la bonne mais tu peut essayer de mettre en place une boucle qui affiche tes données. et ensuite, dès que tu as atteint la valeur souhaitée tu sort de la boucle et par conséquent, tu arrête l'affichage.
Comme ceci :
int NbrEntrees = a; //Nombre d'entrées que tu souhaite afficher
For(int i=0 ; i<= NbrEntrees ; i++)
{
/*Ici, tu met ton code pour afficher chaque entrée*/
}
cs_Tinio
Messages postés11Date d'inscriptionmercredi 18 février 2004StatutMembreDernière intervention 7 juillet 2006 27 juin 2006 à 11:57
Sans vouloir te vexer,
mon problème n'est pas de faire une boucle.
Le truc c'est que tu ne gère pas réellement l'affichage dans un DataGridView.
C'est quand tu le lies que le Framework affiche dedans TOUT le DataSet.
Il n'y a aucun endroit où je gère moi-même l'insertion des lignes dans le DataGridView.
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 27 juin 2006 à 17:59
Regarde du côté de la classe DataView, si mes souvenirs sont bons, c'est assez simple à utiliser... Je n'ai pas d'exemples directement sous la main, mais dans MSDN tu devrais trouver ton bonheur.
cs_Tinio
Messages postés11Date d'inscriptionmercredi 18 février 2004StatutMembreDernière intervention 7 juillet 2006 6 juil. 2006 à 17:30
Non, je peux pas faire ça.
Parce que voilà, j'ai disons par exemple 100 éléments ds mon DataSet.
Je veux pouvoir les trier (les 100) mais les afficher que par 10 par exemple.
Je ne peux pas faire ce que tu me dis si je veux afficher les éléments 50 à 60 par exemple.
En gros, je dois gérer manuellement la pagination et vu que je ne peux pas récupérer les Rows du DataView (trié) directement, je DOIS passer par un DataSet intermédiaire !
cs_Tinio
Messages postés11Date d'inscriptionmercredi 18 février 2004StatutMembreDernière intervention 7 juillet 2006 7 juil. 2006 à 10:44
Ben, en fait, dans ton exemple, tu supprimes les lignes que tu ne veux pas afficher.
C'est une perte de temps énorme si j'ai 10000 éléments ds ma Datatable et que je veux en afficher que 10.
C'est pour ça que je prends uniquement les éléments voulus dans ma DataView triée et que je les copie manuellement dans une autre DataTable
que je lie au DataGridView.
cs_Tinio
Messages postés11Date d'inscriptionmercredi 18 février 2004StatutMembreDernière intervention 7 juillet 2006 7 juil. 2006 à 15:21
Non, je vois rien dans la doc de ces filtres qui pourrait m'aider.
A part le "count" qui pourrait m'aider à exclure ceux que je veux pas afficher.
Mais c'est fou, je dois pas être le seul à vouloir faire de la pagination d'une Datatable sur une DataGridView. C'est à croire qu'ils ne l'ont pas prévu.
Alors que le Framework le fait très facilement en ASP, en C# on doit se débrouiller !