Partager via


Pagination dans un contrôle serveur Web GridView

Mise à jour : novembre 2007

Le contrôle GridView ASP.NET possède une fonctionnalité de pagination intégrée qui prend en charge la fonctionnalité de pagination de base. Vous pouvez utiliser l'interface utilisateur de pagination par défaut ou en créer une personnalisée.

Fonctionnement de la pagination dans le contrôle GridView

Le contrôle GridView prend en charge la pagination sur les éléments dans sa source de données. Vous affectez la valeur true à la propriété AllowPaging pour activer la pagination. Le contrôle GridView prend en charge la pagination de l'une des manières suivantes :

  1. Si le contrôle GridView est lié à un contrôle de source de données qui est capable de retourner une seule page de données sur demande, le contrôle GridView tirera directement parti de cette fonction. Le nombre de lignes demandé peut varier selon le nombre de lignes par page spécifié par la propriété PageSize et selon si la source de données prend en charge l'obtention du nombre total de lignes.

    Remarque :

    Parmi les contrôles de source de données qui sont inclus dans le .NET Framework, seul le contrôle ObjectDataSource prend en charge le retour d'une seule page de données.

    Remarque :

    Si vous créez une source de données (par exemple, l'implémentation d'une méthode SelectCountMethod dans l'objet source pour le contrôle ObjectDataSource), il est vivement recommandé que votre source de données retourne le nombre total de lignes lorsqu'elle fournit des pages de données. Cela réduit le nombre d'enregistrements que le contrôle GridView doit demander pour récupérer une page de données. Si le nombre total de lignes est fourni par l'objet de données source, le contrôle GridView demandera uniquement une page de lignes à la fois. Si le nombre total de lignes n'est pas indiqué, le contrôle GridView doit demander toutes les lignes de la source de données (en commençant par la ligne qui représente la page de données demandée) et ignorer toutes les lignes à l'exception de la ligne affichée.

  2. Si le contrôle GridView est lié à un contrôle de source de données qui ne prend pas directement en charge la fonctionnalité de pagination, ou si le contrôle GridView est lié à une structure de données dans le code via la propriété DataSource, le contrôle GridView exécute la pagination en obtenant tous les enregistrements de données de la source, en affichant uniquement les enregistrements de la page actuelle et en ignorant le reste. Ce comportement est pris en charge uniquement lorsque la source de données du contrôle GridView retourne une collection qui implémente l'interface ICollection (incluant les groupes de données).

    Remarque :

    Si la source de données ne prend pas directement en charge la pagination et n'implémente pas l'interface ICollection, le contrôle GridView ne peut pas effectuer de pagination. Par exemple, si vous utilisez un contrôle SqlDataSource et que vous avez affecté la valeur DataReader à sa propriété DataSourceMode, le contrôle GridView ne peut pas implémenter la pagination.

Personnalisation des paramètres de pagination et de l'interface utilisateur

Vous pouvez personnaliser l'interface utilisateur de pagination du contrôle GridView de plusieurs manières. Vous pouvez définir la taille de la page (c'est-à-dire le nombre d'éléments à afficher à la fois) à l'aide de la propriété PageSize. Vous pouvez définir également la page actuelle du contrôle GridView en définissant la propriété PageIndex. Vous pouvez spécifier un comportement plus personnalisé en utilisant la propriété PagerSettings ou en fournissant un modèle de pagineur.

Modes de pagination

La propriété PagerSettings vous permet de personnaliser l'apparence de l'interface utilisateur de pagination qui est automatiquement générée par le contrôle GridView lorsque vous affectez la valeur true à la propriété AllowPaging. Le contrôle GridView peut afficher des contrôles de direction qui permettent la navigation avant et arrière, ainsi que des contrôles numériques qui permettent à un utilisateur d'accéder à une page spécifique.

Une classe PagerSettings est affectée à la propriété PagerSettings du contrôle GridView. Vous pouvez personnaliser le mode de pagination en définissant la propriété Mode du contrôle GridView. Par exemple, vous pouvez personnaliser le mode de l'interface utilisateur de pagination en le définissant comme suit :

GridView1.PagerSettings.Mode = PagerButtons.NextPreviousFirstLast

Vous avez le choix entre les modes suivants :

Apparence du contrôle Pager

Le contrôle GridView est doté de nombreuses propriétés que vous pouvez utiliser pour personnaliser le texte et les images pour les différents modes du pagineur. Par exemple, si vous souhaitez permettre la navigation à l'aide des boutons de direction, mais en personnalisant le texte qui est apparu, vous pouvez personnaliser le texte du bouton en définissant les propriétés NextPageText et PreviousPageText, comme dans l'exemple suivant :

GridView1.PagerSettings.NextPageText = "Click for next page"
GridView1.PagerSettings.PreviousPageText = "Click for previous page"

Vous pouvez aussi utiliser des images pour personnaliser l'apparence de vos contrôles de pagination. La classe PagerSettings inclut les propriétés de l'URL de l'image pour les boutons de commande de page (première, dernière, précédente et suivante).

Enfin, vous pouvez contrôler l'apparence des commandes de pagination en affectant une valeur TableItemStyle à la propriété PagerStyle du contrôle GridView.

Modèle Pagination des données

Si vous affectez à la propriété AllowPaging du contrôle GridView la valeur true, le contrôle GridView ajoute automatiquement les contrôles d'interface utilisateur pour la pagination. Vous pouvez personnaliser l'interface utilisateur de pagination en ajoutant un modèle PagerTemplate. Pour spécifier l'opération de pagination à effectuer, incluez un contrôle Button dont la propriété CommandName a la valeur Page et un CommandArgument ayant une des valeurs suivantes :

  • First   Pour accéder à la première page.

  • Last   Pour accéder à la dernière page.

  • Prev   Pour accéder à la page précédente.

  • Next   Pour accéder à la page de données suivante.

  • Un nombre   Pour accéder à une page spécifique.

Événements de pagination

Le contrôle GridView déclenche deux événements lorsqu'il accède à une nouvelle page de données. L'événement PageIndexChanging se produit avant que le contrôle GridView n'exécute l'opération de pagination. L'événement PageIndexChanged se produit après que la nouvelle page de données a été retournée au contrôle GridView.

Vous pouvez utiliser l'événement PageIndexChanging pour annuler l'opération de pagination si nécessaire ou pour exécuter une tâche avant que le contrôle GridView ne demande une nouvelle page de données. Vous pouvez utiliser l'événement PageIndexChanged pour exécuter une tâche après que l'utilisateur a accédé à une page de données différente.

Voir aussi

Référence

Vue d'ensemble du contrôle serveur Web GridView