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

Data Grid

Il componente UDDataGrid è una versione avanzata della tabella, utile per visualizzare grandi quantità di dati. Supporta molte delle stesse funzionalità della tabella, ma offre anche filtri complessi, virtualizzazione delle righe, ordinamento su più colonne e altro ancora.

Data grid semplice

Le data grid caricano i propri dati tramite il gestore di eventi -LoadRows. Dovrà restituire una hashtable che contiene i dati delle righe e il numero totale di righe.

Le colonne sono definite utilizzando hashtable.

Colonne

Le colonne sono personalizzabili tramite New-UDDataGridColumn. Maggiori informazioni su questo cmdlet sono disponibili qui.

Rendering di colonne personalizzate

È possibile eseguire il rendering di componenti personalizzati nelle colonne specificando render all'interno della hashtable della colonna. Può accedere ai dati della riga corrente utilizzando la variabile $EventData o $Row

In questo esempio, il numero è mostrato nella colonna del nome con un componente New-UDTypography.

Colonne a larghezza flessibile

La fluidità o la reattività delle colonne può essere ottenuta impostando la proprietà flex di una colonna.

La proprietà flex accetta un valore compreso tra 0 e ∞. Funziona dividendo lo spazio rimanente nella griglia tra tutte le colonne flex in proporzione al loro valore flex.

Ad esempio, si consideri una griglia con una larghezza totale di 500px che ha tre colonne: la prima con width: 200; la seconda con flex: 1; e la terza con flex: 0.5. La prima colonna sarà larga 200px, lasciando 300px rimanenti. La colonna con flex: 1 è il doppio della dimensione di flex: 0.5, il che significa che le dimensioni finali saranno: 200px, 200px, 100px.

Per impostare una larghezza minima e massima per una colonna flex, imposti le proprietà minWidth e maxWidth sulla colonna.

Ridimensionamento automatico delle colonne

Se desidera che la data grid dimensioni automaticamente le larghezze delle colonne, può utilizzare il parametro -AutoSizeColumns di New-UDDataGrid. La data grid valuterà la dimensione dei dati e determinerà la dimensione migliore per le colonne dopo il caricamento dei dati. Ciò può causare una riorganizzazione dell'interfaccia utente dopo il caricamento dei dati.

LoadRows

Il parametro -LoadRows viene utilizzato per restituire i dati per la data grid. Lo stato della tabella verrà fornito al gestore di eventi come $EventData. Troverà le seguenti proprietà all'interno dell'oggetto $EventData.

Proprietà
Descrizione
Tipo

Filter

Un oggetto filtro che può utilizzare per costruire filtri sui suoi dati.

Hashtable

Page

La pagina corrente. Inizia da 0.

Integer

PageSize

Il numero di record in una pagina.

Integer

Sort

Le opzioni di ordinamento per la tabella

Hashtable

Paginazione

Per implementare la paginazione, può accedere alle proprietà page e pageSize della variabile $EventData. Se utilizza un'origine dati remota, sarà opportuno implementare una logica di paginazione personalizzata. Di seguito è riportato un esempio di utilizzo delle proprietà di paginazione per scorrere le righe localmente. A seconda della sua origine dati (ad es. SQL), potrebbe scorrere i dati in modo diverso.

Out-UDDataGridData implementa automaticamente la paginazione e non è necessario fare quanto sopra se ha tutti i suoi dati in memoria. Quanto sopra è utilizzato solo a scopo dimostrativo.

Filtraggio

La data grid supporta il filtraggio dei dati in base a ciascuna colonna. È possibile definire più filtri per consentire all'utente di restringere il set di dati visualizzato. Per impostazione predefinita, il cmdlet Out-UDDataGridData implementa il filtraggio per i dati locali. Quando si utilizza un'origine dati remota, come SQL, si consiglia di implementare un filtraggio personalizzato per migliorare l'esperienza utente e le prestazioni.

Struttura dati del filtro

L'oggetto filtro è incluso in $EventData per il gestore di eventi -LoadRows quando è definito un filtro. L'oggetto ha la struttura seguente.

Items

La proprietà items contiene una raccolta di campi, operatori e valori. Può utilizzarli per filtrare i suoi dati.

Proprietà
Descrizione
Tipo

Field

Il nome del campo da filtrare

String

Operator

Il tipo di operatore da utilizzare durante il filtraggio dei dati.

String

Value

Il valore utilizzato per filtrare

Object

LogicOperator

Il campo dell'operatore logico viene utilizzato per specificare il collegamento tra i filtri. Può essere and o or.

QuickFilterValues

Contiene una raccolta di valori di filtro rapido che può scegliere come applicare ai suoi dati.

QuickFilterLogicOperator

Contiene l'operatore logico per i valori di filtro rapido specificati dall'utente. Può essere and o or.

Filtro personalizzato

Il cmdlet Out-UDDataGridData fornisce un'implementazione del filtraggio per dati statici. Se utilizza questo cmdlet, non è necessario implementare manualmente il filtraggio. Se dispone di un'origine dati remota, sarà opportuno fornire un'implementazione personalizzata per il filtraggio. Di seguito è riportato un esempio di utilizzo della struttura del filtro in $EventData per eliminare righe in base ai filtri forniti dall'utente.

Filtro rapido personalizzato

Il filtro rapido è simile a una semplice casella di ricerca. Può abilitare il filtraggio rapido con il parametro -ShowQuickFilter su New-UDDataGrid. Una casella di ricerca apparirà in alto a destra nella data grid. Quando l'utente inserisce un valore nella data grid, verranno fornite le informazioni sul filtro rapido.

Di seguito è riportato un esempio di come utilizzare i filtri rapidi. Out-UDDataGridData implementa il filtraggio rapido e non è richiesto quando si utilizzano dati locali. Quanto segue è a solo scopo dimostrativo.

Ordinamento

L'oggetto $EventData conterrà una proprietà Sort quando l'utente ordina la data grid. Contiene proprietà per ogni colonna ordinata. Le proprietà inizieranno da 0 e aumenteranno man mano che vengono ordinate più colonne.

Ad esempio, può accedere alla prima colonna ordinata come segue.

Riceverà anche la direzione di ordinamento per ciascuna colonna.

Proprietà
Descrizione
Tipo

Field

Il campo da ordinare.

String

Sort

La direzione in cui ordinare il campo.

asc, desc

Contenuto dettagliato

Può utilizzare il gestore di eventi -LoadDetailContent per visualizzare informazioni aggiuntive sulla riga che sta espandendo. Le informazioni sulla riga corrente sono disponibili in $EventData.row.

Esempio: data grid annidate

Può utilizzare il parametro -LoadDetailContent per cercare dati annidati su un oggetto. In questo esempio, carichiamo una data grid di macchine virtuali e visualizziamo il nome, il sistema operativo, la memoria e i core della CPU. L'espansione del contenuto di dettaglio fornisce una data grid delle schede di rete disponibili sulla macchina virtuale. In questo esempio utilizziamo dati fittizi, ma potrebbe utilizzare qualsiasi cmdlet disponibile in PowerShell Universal.

Modifica

Le tabelle forniscono il supporto per l'editor specificando il gestore di eventi -OnEdit. I nuovi dati della riga verranno forniti come $EventData. Può scegliere di restituire informazioni aggiornate sulla riga (ad esempio, modificando qualcosa che l'utente ha inserito) e restituirle dal gestore di eventi. Se non restituisce nulla, la riga rifletterà quanto inserito dall'utente.

$EventData ha il formato seguente.

Si assicuri di fornire la proprietà editable a ogni colonna che desidera far modificare all'utente.

Selezione

Può abilitare la selezione delle righe utilizzando il parametro -CheckboxSelection per visualizzare le caselle di controllo per le righe da selezionare. La selezione delle righe richiede un ID deterministico per le righe di dati fornite. Nell'esempio seguente, vedrà che ogni riga ha un ID specifico.

Può accedere ai dati selezionati con il gestore di eventi -OnSelectionChange o recuperando gli ID delle righe tramite Get-UDElement.

Esportazione personalizzata

Per sovrascrivere la funzionalità di esportazione predefinita, utilizzi il gestore di eventi -OnExport. $EventData sarà lo stesso oggetto di contesto utilizzato per -LoadRows. Dovrebbe utilizzare Out-UDDataGridExport per restituire i dati da -OnExport.

Tipi di esportazione multipli

Quando si utilizza un'esportazione personalizzata, può utilizzare il parametro -ExportOptionsper definire più tipi di esportazione. Quando l'utente seleziona il tipo di esportazione, può controllare la proprietà Type di $EventDataper determinare quale tipo di esportazione produrre.

Esempio: dati statici

In questo esempio, generiamo un array di 10.000 record. Creeremo una nuova funzione, Out-UDDataGridData, per gestire la paginazione, l'ordinamento e il filtraggio. Questa funzione è già inclusa nel modulo Universal.

Esempio: dati SQL

In questo esempio, interrogheremo il database di PowerShell Universal con dbatools.

API

Ultimo aggiornamento

È stato utile?