React-Table 2
Footer
Mit einem Footer können Spalteninformationen am Ende der Tabelle angegeben werden. Zur Erstellung eines Footers sind folgende Schritte erforderlich:
- Die Spaltendefinition um einen Eintrag (z. B. „Footer“) erweitern
- Die Liste von Objekten bei der Verwendung der Tabelleninstanz um das Objekt „footerGroups“ erweitern
- Die Tabellen-Struktur um „<tfoot>...</tfoot>“ und den entsprechenden Methoden zur Auflistung und Darstellung der Spalteninformationen erweitern
- ggf. die CSS-Datei um „tfoot td“ erweitern
React.js-Dateien:
CSS-Datei:
Ergebnis:
Sortierung
Zur Implementierung der Sortierung von Spalten sind folgende Schritte erforderlich:
- React-Table-Hook „useSortBy“ importieren
- Bei der Erstellung der Tabelleninstanz das „useSortBy“-Feature mit „useTable({ columns, data }, useSortBy)“ hinzufügen
- Im „th“-Tag der Methode „column.getHeaderProps()“ die Methode „column.getSortByToggleProps()“ als Parameter übergeben
- ggf. Icons für die Darstellung der Sortierung im „th“-Element hinzufügen
React.js-Dateien:
CSS-Datei:
Ergebnis:
Filterung
Globale Filterung
Zur Implementierung einer globalen Filterung, d. h. über alle Spalten, sind folgende Schritte erforderlich:
- React-Table-Hook „useGlobalFilter“ imortieren
- Bei der Erstellung der Tabelleninstanz das „useGlobalFilter“-Feature mit „useTable({ columns, data }, useGlobalFilter)“ hinzufügen
- Die Liste von Objekten bei der Verwendung der Tabelleninstanz um die Objekte „state“ und „setGlobalFilter“ erweitern
- Die Konstante „globalFilter“ aus dem „state“-Objekt generieren
- Eine Funktions-Komponente (im Beispiel „GlobalFilter“) zur Implementierung des globalen Filters erstellen
- Import der Funktions-Komponente „GlobalFilter“
- Die Funktions-Komponente in die return-Anweisung integrieren und die Objekte „globalFilter“ und „setGlobalFilter“ als Parameter übergeben
React.js-Dateien:
CSS-Datei:
Ergebnis:
Filterung über Spalten
Zur Implementierung einer Filterung über einzelne Spalten, sind folgende Schritte erforderlich:
- React-Table-Hook „useFilters“ imortieren
- Bei der Erstellung der Tabelleninstanz das „useFilter“-Feature mit „useTable({ columns, data }, useFilter)“ hinzufügen
- Eine Funktions-Komponente (im Beispiel „ColumnFilter“) zur Implementierung der Filterung über Spalten erstellen
- Die Funktions-Komponente „ColumnFilter“ in der Datei zur Spaltendefinition importieren
- Die Spaltendefinitionen um „Filter: ColumnFilter“ erweitern
- In der Schleife des Headers das „th“-Element um „<div>{column.canFilter ? column.render('Filter') : null}</div>“ erweitern
React.js-Dateien:
CSS-Datei:
Ergebnis:
Mit „disableFilters: true“ in den Spaltendefinitionen kann der Spaltenfilter für einzelen Spalten deaktiviert werden:
React.js-Dateien:
Ergebnis: