none
SPGridView alimenté par une large source de données - Problème de performance RRS feed

  • Question

  • Bonjour à tous,

    Pour remplir ma GridView, je créé un DataTable comme suit:
    j'interroge une liste avec une SPQuery qui me retourne quelques 10000 lignes dans un objet SPListItemCollection.
    Ensuite, afin de récupérer la DataTable, j'execute la méthode GetDataTable appliqué sur mon SPListItemCollection. Cette instruction est très très gourmande car le DataTable contient les 10000 lignes.
    Or, mon SPGridView est paginé en page de 10 lignes, ce qui est donc inutile de récupérer l'ensemble des lignes alors que j'en affiche que 10 par 10 ...

    En me renseignant, j'ai fais connaissance de la propriété ListItemCollectionPosition. J'ai donc limité ma SPQuery à 10 éléments, j'interroge la liste, je conserve la propriété ListItemCollectionPosition que je réinjecte à la query pour visualiser la page suivante.

    Mais:

    1- je ne vois pas comment gérer le retour à la page précédente

    2- le tri natif du SPGridView, du coup, ne s'applique pas à l'ensemble de la liste mais juste au 10 éléments de la page (faut-il inclure le tri dans la spquery, dans ce cas, le tri n'est plus tellement natif...)

    Pourriez-vous m'éclairer svp ?
    vendredi 21 janvier 2011 17:06