Grille de données
Composant de grille de données pour Universal Apps.
Le composant UDDataGrid est une version avancée du tableau, utile pour afficher de grandes quantités de données. Il prend en charge de nombreuses fonctionnalités similaires à celles du tableau, mais offre également un filtrage complexe, la virtualisation des lignes, le tri multi-colonnes et bien plus encore.
Grille de données simple

Les grilles de données chargent leurs données via le gestionnaire d'événements -LoadRows. Vous devez retourner une table de hachage contenant les données des lignes et le nombre total de lignes.
Les colonnes sont définies à l'aide de tables de hachage.
Colonnes
Les colonnes sont personnalisables à l'aide de New-UDDataGridColumn. Pour plus d'informations sur cette cmdlet, consultez cette page.
Rendu de colonnes personnalisées
Vous pouvez afficher des composants personnalisés dans les colonnes en spécifiant render dans la table de hachage de la colonne. Vous pouvez accéder aux données de la ligne actuelle en utilisant la variable $EventData ou $Row.
Dans cet exemple, le nombre est affiché dans la colonne du nom avec un composant New-UDTypography.
Colonnes à largeur flexible
La fluidité ou la réactivité des colonnes peut être obtenue en définissant la propriété flex d'une colonne.
La propriété flex accepte une valeur entre 0 et ∞. Elle fonctionne en divisant l'espace restant dans la grille entre toutes les colonnes flexibles, proportionnellement à leur valeur flex.
Par exemple, considérez une grille d'une largeur totale de 500 px comportant trois colonnes : la première avec width: 200 ; la deuxième avec flex: 1 ; et la troisième avec flex: 0.5. La première colonne aura une largeur de 200 px, laissant 300 px restants. La colonne avec flex: 1 est deux fois plus large que flex: 0.5, ce qui signifie que les tailles finales seront : 200 px, 200 px, 100 px.
Pour définir une largeur minimale et maximale pour une colonne flex, définissez les propriétés minWidth et maxWidth sur la colonne.
Dimensionnement automatique des colonnes
Si vous souhaitez laisser la grille de données ajuster automatiquement la largeur des colonnes, vous pouvez utiliser le paramètre -AutoSizeColumns de New-UDDataGrid. La grille de données évaluera la taille des données et déterminera la meilleure taille pour les colonnes après le chargement des données. Cela peut entraîner un réarrangement de l'interface utilisateur après le chargement des données.
LoadRows
Le paramètre -LoadRows est utilisé pour retourner les données de la grille de données. L'état du tableau sera fourni au gestionnaire d'événements sous la forme $EventData. Vous trouverez les propriétés suivantes dans l'objet $EventData.
Filter
Un objet de filtre que vous pouvez utiliser pour construire des filtres sur vos données.
Hashtable
Page
La page actuelle. Commence à 0.
Integer
PageSize
Le nombre d'enregistrements par page.
Integer
Sort
Les options de tri pour le tableau.
Hashtable
Pagination
Pour implémenter la pagination, vous pouvez accéder aux propriétés page et pageSize de la variable $EventData. Si vous utilisez une source de données distante, vous souhaiterez implémenter une logique de pagination personnalisée. Vous trouverez ci-dessous un exemple d'utilisation des propriétés de pagination pour parcourir les lignes localement. Selon votre source de données (p. ex. SQL), vous pourriez paginer les données différemment.
Out-UDDataGridData implémente automatiquement la pagination, et vous n'avez pas besoin d'effectuer ce qui précède si toutes vos données sont en mémoire. L'exemple ci-dessus est uniquement fourni à des fins de démonstration.
Filtrage
La grille de données prend en charge le filtrage des données par colonne. Plusieurs filtres peuvent être définis pour permettre à l'utilisateur de restreindre le jeu de données affiché. Par défaut, la cmdlet Out-UDDataGridData implémente le filtrage pour les données locales. Lors de l'utilisation d'une source de données distante, comme SQL, il est recommandé d'implémenter un filtrage personnalisé pour améliorer l'expérience utilisateur et les performances.

Structure des données de filtre
L'objet de filtre est inclus dans $EventData pour le gestionnaire d'événements -LoadRows lorsqu'un filtre est défini. L'objet a la structure suivante.
Items
La propriété items contient une collection de champs, d'opérateurs et de valeurs. Vous pouvez les utiliser pour filtrer vos données.
Field
Le nom du champ à filtrer.
String
Operator
Le type d'opérateur à utiliser lors du filtrage des données.
String
Value
La valeur utilisée pour le filtrage.
Object
LogicOperator
Le champ d'opérateur logique est utilisé pour spécifier le lien entre les filtres. Il peut être and ou or.
QuickFilterValues
Contient une collection de valeurs de filtre rapide que vous pouvez choisir d'appliquer à vos données.
QuickFilterLogicOperator
Contient l'opérateur logique pour les valeurs de filtre rapide spécifiées par l'utilisateur. Il peut être and ou or.
Filtre personnalisé
La cmdlet Out-UDDataGridData fournit une implémentation du filtrage pour les données statiques. Si vous utilisez cette cmdlet, vous n'avez pas besoin d'implémenter le filtrage manuellement. Si vous disposez d'une source de données distante, vous souhaiterez fournir une implémentation personnalisée pour le filtrage. Vous trouverez ci-dessous un exemple d'utilisation de la structure de filtre dans $EventData pour éliminer des lignes en fonction des filtres fournis par l'utilisateur.
Filtre rapide personnalisé
Le filtre rapide est similaire à une simple zone de recherche. Vous pouvez activer le filtrage rapide avec le paramètre -ShowQuickFilter sur New-UDDataGrid. Une zone de recherche apparaîtra en haut à droite de la grille de données. Lorsque l'utilisateur saisit une valeur dans la grille de données, les informations de filtre rapide seront fournies.
Vous trouverez ci-dessous un exemple d'utilisation des filtres rapides. Out-UDDataGridData implémente le filtrage rapide et n'est pas requis lors de l'utilisation de données locales. Ce qui suit est fait uniquement à des fins de démonstration.
Tri

L'objet $EventData contiendra une propriété Sort lorsque l'utilisateur trie la grille de données. Il contient des propriétés pour chaque colonne triée. Les propriétés commencent à 0 et s'incrémentent au fur et à mesure que des colonnes supplémentaires sont triées.
Par exemple, vous pouvez accéder à la première colonne triée comme suit.
Vous recevrez également la direction du tri pour chaque colonne.
Field
Le champ à trier.
String
Sort
La direction dans laquelle trier le champ.
asc, desc
Contenu détaillé

Vous pouvez utiliser le gestionnaire d'événements -LoadDetailContent pour afficher des informations supplémentaires sur la ligne que vous développez. Les informations sur la ligne actuelle sont disponibles dans $EventData.row.
Exemple : grilles de données imbriquées
Vous pouvez utiliser le paramètre -LoadDetailContent pour rechercher des données imbriquées sur un objet. Dans cet exemple, nous chargeons une grille de données de machines virtuelles et affichons le nom, le système d'exploitation, la mémoire et les cœurs CPU. Le développement du contenu détaillé fournit une grille de données des cartes réseau disponibles sur la machine virtuelle. Nous utilisons des données fictives dans cet exemple, mais vous pourriez utiliser n'importe quelle cmdlet disponible dans PowerShell Universal.
Modification
Les tableaux prennent en charge l'édition en spécifiant le gestionnaire d'événements -OnEdit. Les nouvelles données de la ligne seront fournies sous la forme $EventData. Vous pouvez choisir de retourner des informations de ligne mises à jour (par exemple, en ajustant ce que l'utilisateur a saisi) et de les retourner depuis le gestionnaire d'événements. Si vous ne retournez rien, la ligne reflétera ce que l'utilisateur a saisi.
$EventData a le format suivant.
Assurez-vous de fournir la propriété editable à chaque colonne que vous souhaitez rendre modifiable par l'utilisateur.
Sélection
Vous pouvez activer la sélection de lignes à l'aide du paramètre -CheckboxSelection pour afficher des cases à cocher sur les lignes à sélectionner. La sélection de lignes nécessite un identifiant déterministe pour les lignes de données fournies. Dans l'exemple ci-dessous, vous verrez que chaque ligne possède un identifiant spécifique.
Vous pouvez accéder aux données sélectionnées avec le gestionnaire d'événements -OnSelectionChange ou en récupérant les identifiants de lignes via Get-UDElement.
Exportation personnalisée
Pour remplacer la fonctionnalité d'exportation par défaut, utilisez le gestionnaire d'événements -OnExport. $EventData sera le même objet de contexte utilisé pour -LoadRows. Vous devez utiliser Out-UDDataGridExport pour retourner les données depuis -OnExport.
Types d'exportation multiples
Lors de l'utilisation d'une exportation personnalisée, vous pouvez utiliser le paramètre -ExportOptions pour définir plusieurs types d'exportation. Lorsque l'utilisateur sélectionne le type d'exportation, vous pouvez vérifier la propriété Type de $EventData pour déterminer quel type d'exportation produire.
Exemple : données statiques
Dans cet exemple, nous générons un tableau de 10 000 enregistrements. Nous allons créer une nouvelle fonction, Out-UDDataGridData, pour gérer la pagination, le tri et le filtrage. Cette fonction est déjà incluse dans le module Universal.

Exemple : données SQL
Dans cet exemple, nous allons interroger la base de données PowerShell Universal avec dbatools.

API
Mis à jour
Ce contenu vous a-t-il été utile ?