Partager via


Tri des données dans un contrôle serveur Web GridView

Mise à jour : novembre 2007

Le contrôle GridView fournit une fonctionnalité de tri intégrée qui ne nécessite pas de codage. Vous pouvez personnaliser davantage la fonctionnalité de tri du contrôle GridView en utilisant des valeurs de propriété SortExpression personnalisées pour les colonnes et en utilisant les événements Sorting et Sorted.

Utilisation du tri dans le contrôle GridView

Le contrôle GridView n'exécute pas son propre tri de colonnes, mais se repose sur le contrôle de source de données qui effectue le tri en son nom. Il fournit l'interface utilisateur de tri, par exemple les contrôles LinkButton affichés en haut de chaque colonne de la grille. Toutefois, le contrôle GridView utilise les fonctions de tri de données du contrôle de source de données auquel il est lié.

Si le contrôle de source de données lié prend en charge le tri de données, le contrôle GridView peut interagir avec celui-ci et demander les données triées en transmettant une expression SortExpression à la source de données lorsque les données sont sélectionnées. Tous les contrôles de source de données ne prennent pas en charge le tri, comme c'est le cas par exemple du contrôle XmlDataSource. Toutefois, si le contrôle de source de données prend en charge le tri, le contrôle GridView peut en tirer parti. La liste suivante décrit les contrôles de source de données et la configuration requise pour prendre en charge le tri :

Processus de tri GridView

Vous pouvez activer le comportement de tri par défaut du contrôle GridView en affectant la valeur true à sa propriété AllowSorting. Lorsque vous affectez la valeur true à cette propriété, le contrôle GridView restitue un contrôle LinkButton dans les en-têtes de colonnes. Le contrôle définit également implicitement la propriété SortExpression de chaque colonne sur le nom du champ de données auquel il est lié. Par exemple, si la grille contient une colonne qui affiche la colonne City de la table Employees dans l'exemple de base de données Northwind, la propriété SortExpression de cette colonne a la valeur City.

Au moment de l'exécution, les utilisateurs peuvent cliquer sur le contrôle LinkButton dans un en-tête de colonne pour trier cette colonne. Lorsque vous cliquez sur le lien, la page effectue une publication (postback) et déclenche l'événement Sorting du contrôle GridView. L'expression de tri - par défaut, le nom de la colonne de données - est transmise dans le cadre des arguments d'événement. Le comportement par défaut pour l'événement Sorting est que le contrôle GridView transmet l'expression de tri au contrôle de source de données. Ce dernier exécute sa requête ou méthode de sélection, en incluant les paramètres de tri transmis par la grille.

Une fois la requête exécutée, l'événement Sorted de la grille est déclenché. Il vous permet d'exécuter la logique de requête ultérieure, par exemple l'affichage d'un message d'état. Enfin, le contrôle de source de données relie le contrôle GridView aux résultats de la requête retriée.

Le contrôle GridView ne vérifie pas si le contrôle de source de données prend en charge le tri ; il transmet toujours l'expression de tri à la source de données. Si le contrôle de source de données ne prend pas en charge le tri et qu'une opération de tri est effectuée dans le contrôle GridView, le contrôle GridView lève l'exception NotSupportedException. Vous pouvez intercepter cette exception dans un gestionnaire d'événements Sorting et vérifier si la source de données prend en charge le tri, ou en utilisant votre propre logique de tri.

Contrôle du tri pour les colonnes individuelles

La définition de la propriété AllowSorting de la grille vous permet de trier les colonnes par défaut. Vous pouvez désactiver le tri pour les champs individuels (par exemple, le champ BoundField ou TemplateField) en affectant une chaîne vide ("") à la propriété SortExpression de la colonne individuelle.

Tri personnalisé

Si le comportement de tri par défaut ne convient pas à vos conditions, vous pouvez personnaliser le comportement de tri de la grille. La technique de base pour effectuer un tri personnalisé consiste à gérer l'événement Sorting. Dans le gestionnaire, procédez comme suit :

  • Personnalisez l'expression de tri transmise au contrôle de source de données. Par défaut, l'expression de tri porte le nom d'une colonne unique. Vous pouvez la modifier dans le gestionnaire d'événements. Par exemple, si vous souhaitez trier par deux colonnes, vous pouvez créer une expression de tri qui inclut les deux colonnes. Vous pouvez transmettre ensuite l'expression de tri modifiée au contrôle de source de données. Pour plus d'informations, consultez la propriété GridViewSortEventArgs.SortExpression.

  • Créez votre propre logique de tri. Par exemple, si vous utilisez une source de données qui ne prend pas en charge le tri, vous pouvez exécuter le tri dans votre propre code puis lier la grille aux données triées.

Voir aussi

Concepts

Vue d'ensemble des contrôles serveur Web liés aux données ASP.NET