Puis-je utiliser DataTable.Méthode Select() pour faire simple pagination?
J'ai vite vue de cet article MSDN à l'aide de datacolumn.expression, mais n'ai rien trouvé. Il ressemble 'select' expression de syntaxe ne prend pas en charge la pagination...
Ce que l'article êtes-vous référence?
* correction d'un lien de l'article.
J'ai juste changé pour la version anglaise pour vous 🙂
* correction d'un lien de l'article.
J'ai juste changé pour la version anglaise pour vous 🙂
OriginalL'auteur dimhotepus | 2013-03-18
Vous devez vous connecter pour publier un commentaire.
La pagination est un mécanisme de la façon dont vous
SELECT
les données. Considérons la suite des données de test:si je voulais faire une page de données, et je n'aimais pas la façon dont il a été trié, je pourrais le faire par
ID
si je pouvais faire quelque chose comme ceci:et qui pourrait me donner les dix premières lignes (c'est à dire une page). Remarque, je suis également le stockage de la dernière
ID
dans l'hypothèse d'une variable de classe nommé_id
. La façon dont vous stockez, ou simplement récupérer plus tard, queID
dépend uniquement de votre programme. Maintenant, si j'ai besoin de la page suivante, je pourrais faire quelque chose comme ceci:et qui me donnerait la page suivante. Mais si je voulais trier les données par
Name
? Qui change le jeu un peu. Considérons le code suivant:qui me donnera la première page de données, triés par
Name
. Mais remarquez que je suis stocker la valeur deName
dans l'hypothèse de variable de classe_name
pour plus tard. Maintenant, quand je veux la page suivante, j'ai besoin de faire quelque chose comme ceci:cela va me faire de la page suivante, mais toujours commandé par
Name
. De tri est très important quand il s'agit de la pagination.REMARQUE: le code n'est pas tout à fait aussi simple que je l'ai mis en avant. Vous ne pouvez pas simplement
Take(10)
car il peut ne pas être10
à prendre. En outre, vous ne pouvez pas être en mesure de simplement magasin la dernièreID
ouName
, vous pouvez avoir à le récupérer à partir de quelque part à chaque fois. Enfin, vous pouvez avoir besoin à l'appui de multi-tri, où il est trié par plus d'une colonne, donc gardez cela à l'esprit lors de la prestation de tri.NOTE FINALE: il est beaucoup mieux pour tirer profit SQL brut pour la pagination que le code mentionné ci-dessus - je seulement à condition que le code car vous avez demandé à propos de la
Select
méthode sur laDataTable
. Il serait beaucoup mieux de simplement construire la bonne instruction SQL, de l'envoyer au serveur, et ensuite seulement afficher les résultats.OriginalL'auteur Mike Perrenoud
Pagination Simple peut être créé plus simplement à l'aide de LINQ.
Pourquoi vous passez 100 de la curiosité?
Les Pages de 25 lignes. Pour obtenir la 5ème page : passer 4 pages (4 * 25), puis de lire la page (25 articles).
LINQ est rapide, je ne pense pas que vous voir des problèmes de performances. Si vous ne voyez des problèmes de rendement, vous pouvez utiliser LINQ2SQL qui woulc de faire le "top" de la clause pour vous. Guillaume est correct, l'exemple serait la 5ème page 25.
Vous êtes à la pagination de la table de données directement. Que faire si l'ensemble de données est très grand? Côté serveur, en mémoire de pagination ne fait rien pour vous dans ce cas. Vous avez besoin d'extraire les données à partir de la source en petits morceaux. Datatable est de peu d'utilité pour ce scénario sans paresseux capacité de chargement.
OriginalL'auteur Brian P