For the complete documentation index, see llms.txt. This page is also available as Markdown.

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.

Property
Description
Type

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.

Property
Description
Type

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.

Property
Description
Type

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 ?