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

Data Grid

Die Komponente UDDataGrid ist eine erweiterte Version der Tabelle, die zum Anzeigen großer Datenmengen nützlich ist. Sie unterstützt viele der gleichen Funktionen wie die Tabelle, bietet aber zusätzlich komplexe Filterung, Zeilenvirtualisierung, mehrspaltige Sortierung und mehr.

Einfaches Data Grid

Data Grids laden ihre Daten über den Event-Handler -LoadRows. Sie müssen eine Hashtable zurückgeben, die die Zeilendaten und die Gesamtanzahl der Zeilen enthält.

Spalten werden mithilfe von Hashtables definiert.

Spalten

Spalten können mit New-UDDataGridColumn angepasst werden. Weitere Informationen zu diesem Cmdlet finden Sie hier.

Benutzerdefinierte Spalten rendern

Sie können benutzerdefinierte Komponenten in Spalten rendern, indem Sie render innerhalb der Spalten-Hashtable angeben. Auf die Daten der aktuellen Zeile können Sie über die Variable $EventData oder $Row zugreifen

In diesem Beispiel wird die Zahl in der Namensspalte mit einer New-UDTypography-Komponente angezeigt.

Spalten mit flexibler Breite

Spaltenfluidität oder Responsivität kann erreicht werden, indem die Eigenschaft flex einer Spalte gesetzt wird.

Die Eigenschaft flex akzeptiert einen Wert zwischen 0 und ∞. Sie funktioniert, indem der verbleibende Platz im Raster proportional zu ihrem flex-Wert auf alle Flex-Spalten verteilt wird.

Betrachten Sie zum Beispiel ein Raster mit einer Gesamtbreite von 500px, das drei Spalten hat: die erste mit width: 200, die zweite mit flex: 1 und die dritte mit flex: 0.5. Die erste Spalte wird 200px breit sein, wodurch 300px übrig bleiben. Die Spalte mit flex: 1 ist doppelt so groß wie flex: 0.5, was bedeutet, dass die endgültigen Größen folgende sind: 200px, 200px, 100px.

Um eine minimale und maximale Breite für eine flex-Spalte festzulegen, setzen Sie die Eigenschaften minWidth und maxWidth an der Spalte.

Spalten automatisch dimensionieren

Wenn Sie möchten, dass das Data Grid die Spaltenbreiten automatisch dimensioniert, können Sie den Parameter -AutoSizeColumns von New-UDDataGrid verwenden. Das Data Grid wertet die Größe der Daten aus und ermittelt nach dem Laden der Daten die beste Größe für die Spalten. Dies kann nach dem Laden der Daten zu einer gewissen Neuanordnung der Benutzeroberfläche führen.

LoadRows

Der Parameter -LoadRows wird verwendet, um Daten für das Data Grid zurückzugeben. Der Tabellenstatus wird dem Event-Handler als $EventData bereitgestellt. Sie finden die folgenden Eigenschaften innerhalb des $EventData-Objekts.

Eigenschaft
Beschreibung
Typ

Filter

Ein Filterobjekt, mit dem Sie Filter für Ihre Daten erstellen können.

Hashtable

Page

Die aktuelle Seite. Beginnt bei 0.

Integer

PageSize

Die Anzahl der Datensätze auf einer Seite.

Integer

Sort

Die Sortieroptionen für die Tabelle

Hashtable

Paging

Um Paging zu implementieren, können Sie auf die Eigenschaften page und pageSize der Variable $EventData zugreifen. Wenn Sie eine remote Datenquelle verwenden, sollten Sie eine benutzerdefinierte Paging-Logik implementieren. Unten finden Sie ein Beispiel für die Verwendung der Paging-Eigenschaften, um lokal durch die Zeilen zu blättern. Abhängig von Ihrer Datenquelle (z. B. SQL) können Sie Daten anders durchblättern.

Out-UDDataGridData implementiert Paging automatisch, und Sie müssen das oben Genannte nicht tun, wenn sich alle Ihre Daten im Speicher befinden. Das oben Genannte dient nur zu Demonstrationszwecken.

Filterung

Das Data Grid unterstützt das Filtern von Daten anhand jeder Spalte. Es können mehrere Filter definiert werden, damit der Benutzer den angezeigten Datensatz eingrenzen kann. Standardmäßig implementiert das Cmdlet Out-UDDataGridData die Filterung für lokale Daten. Bei Verwendung einer remote Datenquelle wie SQL wird empfohlen, eine benutzerdefinierte Filterung zu implementieren, um die Benutzererfahrung und Leistung zu verbessern.

Datenstruktur des Filters

Das Filterobjekt ist in $EventData für den Event-Handler -LoadRows enthalten, wenn ein Filter definiert ist. Das Objekt hat die folgende Struktur.

Items

Die Eigenschaft items enthält eine Sammlung von Feldern, Operatoren und Werten. Sie können diese verwenden, um Ihre Daten zu filtern.

Eigenschaft
Beschreibung
Typ

Field

Der Name des zu filternden Feldes

String

Operator

Der Operatortyp, der beim Filtern der Daten verwendet werden soll.

String

Value

Der Wert, der zum Filtern verwendet wird

Object

LogicOperator

Das Feld für den Logikoperator wird verwendet, um die Verknüpfung zwischen den Filtern anzugeben. Dies kann and oder or sein.

QuickFilterValues

Enthält eine Sammlung von Schnellfilterwerten, bei denen Sie wählen können, wie Sie sie auf Ihre Daten anwenden.

QuickFilterLogicOperator

Enthält den Logikoperator für die vom Benutzer angegebenen Schnellfilterwerte. Dies kann and oder or sein.

Benutzerdefinierter Filter

Das Cmdlet Out-UDDataGridData bietet eine Implementierung der Filterung für statische Daten. Wenn Sie dieses Cmdlet verwenden, müssen Sie die Filterung nicht manuell implementieren. Wenn Sie eine remote Datenquelle haben, sollten Sie eine benutzerdefinierte Implementierung für die Filterung bereitstellen. Unten finden Sie ein Beispiel für die Verwendung der Filterstruktur in $EventData, um Zeilen anhand der vom Benutzer bereitgestellten Filter zu eliminieren.

Benutzerdefinierter Schnellfilter

Der Schnellfilter ähnelt einem einfachen Suchfeld. Sie können die Schnellfilterung mit dem Parameter -ShowQuickFilter an New-UDDataGrid aktivieren. Oben rechts im Data Grid wird ein Suchfeld angezeigt. Wenn der Benutzer einen Wert in das Data Grid eingibt, werden die Schnellfilterinformationen bereitgestellt.

Unten finden Sie ein Beispiel für die Verwendung von Schnellfiltern. Out-UDDataGridData implementiert die Schnellfilterung und ist bei Verwendung lokaler Daten nicht erforderlich. Das Folgende dient nur zur Demonstration.

Sortierung

Das $EventData-Objekt enthält eine Eigenschaft Sort, wenn der Benutzer das Data Grid sortiert. Sie enthält Eigenschaften für jede sortierte Spalte. Die Eigenschaften beginnen bei 0 und werden erhöht, wenn weitere Spalten sortiert werden.

Zum Beispiel können Sie auf die erste sortierte Spalte wie folgt zugreifen.

Sie erhalten außerdem die Sortierrichtung für jede Spalte.

Eigenschaft
Beschreibung
Typ

Field

Das zu sortierende Feld.

String

Sort

Die Richtung, in die das Feld sortiert wird.

asc, desc

Detaillierter Inhalt

Sie können den Event-Handler -LoadDetailContent verwenden, um zusätzliche Informationen über die Zeile anzuzeigen, die Sie erweitern. Informationen zur aktuellen Zeile sind in $EventData.row verfügbar.

Beispiel: Verschachtelte Data Grids

Sie können den Parameter -LoadDetailContent verwenden, um verschachtelte Daten zu einem Objekt abzurufen. In diesem Beispiel laden wir ein Data Grid mit virtuellen Maschinen und zeigen den Namen, das Betriebssystem, den Speicher und die CPU-Kerne an. Das Erweitern des Detailinhalts liefert ein Data Grid der auf der virtuellen Maschine verfügbaren Netzwerkkarten. Wir verwenden in diesem Beispiel Dummy-Daten, Sie könnten jedoch jedes für PowerShell Universal verfügbare Cmdlet verwenden.

Bearbeitung

Tabellen bieten Editor-Unterstützung, indem der Event-Handler -OnEdit angegeben wird. Die neuen Zeilendaten werden als $EventData bereitgestellt. Sie können wählen, aktualisierte Zeileninformationen zurückzugeben (zum Beispiel, um etwas anzupassen, das der Benutzer eingegeben hat) und diese aus dem Event-Handler zurückzugeben. Wenn Sie nichts zurückgeben, spiegelt die Zeile wider, was der Benutzer eingegeben hat.

Die $EventData hat das folgende Format.

Stellen Sie sicher, dass Sie die Eigenschaft editable für jede Spalte angeben, die der Benutzer bearbeiten soll.

Auswahl

Sie können die Zeilenauswahl mit dem Parameter -CheckboxSelection aktivieren, um Kontrollkästchen für die auszuwählenden Zeilen anzuzeigen. Die Zeilenauswahl erfordert eine deterministische ID für die bereitgestellten Datenzeilen. Im folgenden Beispiel sehen Sie, dass für jede Zeile eine spezifische ID angegeben ist.

Sie können auf ausgewählte Daten mit dem Event-Handler -OnSelectionChange oder durch Abrufen der Zeilen-IDs über Get-UDElement zugreifen.

Benutzerdefinierter Export

Um die Standard-Exportfunktionalität zu überschreiben, verwenden Sie den Event-Handler -OnExport. $EventData ist dasselbe Kontextobjekt, das für -LoadRows verwendet wird. Sie sollten Out-UDDataGridExport verwenden, um die Daten aus -OnExport zurückzugeben.

Mehrere Exporttypen

Bei Verwendung eines benutzerdefinierten Exports können Sie den Parameter -ExportOptions verwenden, um mehrere Exporttypen zu definieren. Wenn der Benutzer den Exporttyp auswählt, können Sie die Eigenschaft Type von $EventData prüfen, um zu bestimmen, welche Art von Export erzeugt werden soll.

Beispiel: Statische Daten

In diesem Beispiel generieren wir ein Array mit 10.000 Datensätzen. Wir erstellen eine neue Funktion, Out-UDDataGridData, um das Paging, die Sortierung und die Filterung zu verwalten. Diese Funktion ist bereits im Universal-Modul enthalten.

Beispiel: SQL-Daten

In diesem Beispiel fragen wir die PowerShell Universal-Datenbank mit dbatools ab.

API

Zuletzt aktualisiert

War das hilfreich?