Grille de données
Le composant UDDataGrid est une version avancée du tableau qui est utile pour afficher de grandes quantités de données. Il prend en charge plusieurs des mêmes fonctionnalités que le tableau, mais offre également un filtrage complexe, la virtualisation des lignes, le tri multicolonne et plus encore.
Grille de données simple

Les grilles de données chargent leurs données via le gestionnaire d'événement -LoadRows. Vous devrez retourner une table de hachage qui contient 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. Vous trouverez plus d'information sur cette applet de commande ici.
Rendu de colonnes personnalisées
Vous pouvez rendre 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 flex proportionnellement à leur valeur flex.
Par exemple, considérez une grille d'une largeur totale de 500 px qui comporte 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 la taille de 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 dimensionner 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 provoquer un réarrangement de l'interface après le chargement des données.
LoadRows
Le paramètre -LoadRows est utilisé pour retourner des données pour la grille de données. L'état du tableau sera fourni au gestionnaire d'événement sous forme de $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.
Table de hachage
Page
La page actuelle. Commence à 0.
Entier
PageSize
Le nombre d'enregistrements dans une page.
Entier
Sort
Les options de tri pour le tableau
Table de hachage
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 voudrez implémenter une logique de pagination personnalisée. Voici 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 parcourir les données différemment.
Out-UDDataGridData implémente automatiquement la pagination, et vous n'avez pas besoin de faire ce qui précède si toutes vos données sont en mémoire. Ce qui précède sert uniquement à des fins de démonstration.
Filtrage
La grille de données prend en charge le filtrage des données selon chaque colonne. Plusieurs filtres peuvent être définis pour permettre à l'utilisateur de restreindre l'ensemble de données affiché. Par défaut, l'applet de commande Out-UDDataGridData implémente le filtrage pour les données locales. Lorsque vous utilisez une source de données distante, comme SQL, il est suggéré d'implémenter un filtrage personnalisé afin d'améliorer l'expérience utilisateur et la performance.

Structure de données du filtre
L'objet de filtre est inclus dans le $EventData du gestionnaire d'événement -LoadRows lorsqu'un filtre est défini. L'objet a une structure comme suit.
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
Chaîne
Operator
Le type d'opérateur à utiliser lors du filtrage des données.
Chaîne
Value
La valeur utilisée pour filtrer
Objet
LogicOperator
Le champ de l'opérateur logique est utilisé pour spécifier le lien entre les filtres. Ce 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. Ce peut être and ou or.
Filtre personnalisé
L'applet de commande Out-UDDataGridData fournit une implémentation du filtrage pour les données statiques. Si vous utilisez cette applet de commande, vous n'avez pas besoin d'implémenter le filtrage manuellement. Si vous avez une source de données distante, vous voudrez fournir une implémentation personnalisée pour le filtrage. Voici 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 semblable à une simple boîte de recherche. Vous pouvez activer le filtrage rapide avec le paramètre -ShowQuickFilter sur New-UDDataGrid. Une boîte 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, l'information du filtre rapide sera fournie.
Voici un exemple d'utilisation des filtres rapides. Out-UDDataGridData implémente le filtrage rapide et n'est pas requis lorsque vous utilisez des données locales. Ce qui suit est présenté à titre de démonstration seulement.
Tri

L'objet $EventData contiendra une propriété Sort lorsque l'utilisateur trie la grille de données. Elle contient des propriétés pour chaque colonne triée. Les propriétés commenceront à 0 et s'incrémenteront à mesure que d'autres colonnes seront 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.
Chaîne
Sort
La direction du tri du champ.
asc, desc
Contenu détaillé

Vous pouvez utiliser le gestionnaire d'événement -LoadDetailContent pour afficher de l'information supplémentaire sur la ligne que vous développez. L'information sur la ligne actuelle est disponible dans $EventData.row.
Exemple : Grilles de données imbriquées
Vous pouvez utiliser le paramètre -LoadDetailContent pour rechercher des données imbriquées à propos d'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 de processeur. 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 applet de commande disponible dans PowerShell Universal.
Modification
Les tableaux offrent la prise en charge de l'éditeur en spécifiant le gestionnaire d'événement -OnEdit. Les nouvelles données de ligne seront fournies sous forme de $EventData. Vous pouvez choisir de retourner l'information de ligne mise à jour (par exemple, ajuster quelque chose que l'utilisateur a saisi) et la retourner depuis le gestionnaire d'événement. Si vous ne retournez rien, la ligne reflétera ce que l'utilisateur a saisi.
Le $EventData a le format suivant.
Assurez-vous de fournir la propriété editable à chaque colonne que vous souhaitez que l'utilisateur puisse modifier.
Sélection
Vous pouvez activer la sélection de lignes à l'aide du paramètre -CheckboxSelection pour afficher des cases à cocher pour les lignes à sélectionner. La sélection de lignes nécessite un ID déterministe pour les lignes de données fournies. Dans l'exemple ci-dessous, vous verrez que chaque ligne a un ID spécifique défini.
Vous pouvez accéder aux données sélectionnées avec le gestionnaire d'événement -OnSelectionChange ou en récupérant les ID de ligne via Get-UDElement.
Exportation personnalisée
Pour remplacer la fonctionnalité d'exportation par défaut, utilisez le gestionnaire d'événement -OnExport. $EventData sera le même objet de contexte utilisé pour -LoadRows. Vous devriez utiliser Out-UDDataGridExport pour retourner les données depuis -OnExport.
Types d'exportation multiples
Lorsque vous utilisez 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 créerons 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 interrogerons la base de données PowerShell Universal avec dbatools.

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