J'ai un DataTable avec 10 lignes disons l'une des colonnes numérotés de 1 à 10 au hasard. Je veux les trier. Habituellement, je fais ceci:Sélectionnez le début N lignes APRÈS le tri à partir de Dataview dans C#
DataView Dv = new DataView(dtPost, "", "views desc", DataViewRowState.Unchanged);
repeater.DataSource = Dv;
repeater.DataBind();
Maintenant, je veux juste lier les 5 premières lignes dans cette Dataview. Si j'essaie ceci:
DvPopBlogs.Table.Rows.Cast<System.Data.DataRow>().Take(5);
OR
DvPopBlogs.Table.AsEnumerable().Take(5); //this usually works if sorting wasnt necessary
Il fonctionne, mais le Dataview oublie complètement sur le tri et sélectionne seulement 5 lignes de haut.
Je l'ai essayé avec tous les DataViewRowStates aussi. Comment sélectionner les 5 premières lignes après le tri?
Je semble à court d'idées! aidez s'il vous plaît!
oui, j'ai trouvé quand je tentais de débogage, dataview semblait avoir ordre de tri, mais dès que j'ajouté le tableau, l'ordre de tri a été perdu, je comprends maintenant le tableau est les données originales. Merci. Mais, DvPopBlogs est un DataView et il n'a pas de méthodes .Take() ou .DataViewRows()! – iamserious
Essayez soit dvPopBlogs.AsEnumerable(). Prenez, ou dans le pire des cas dvPopBlogs.ToTable() Ce dernier va créer un nouveau DataTable à partir du contenu de la vue. –
Salut, désolé, si j'utilise le répéteur de méthode .ToTable() se plaint (sur lier) que certaines colonnes n'existe pas. Débogage montre qu'il existe, peut-être que je fais quelque chose de mal et je suis sûr que vous ne pouvez pas savoir sans le code complet. Que suggérez-vous que je fais maintenant? Merci, et désolé de poser trop de questions! – iamserious