j-DataTable
BETA: Diese Komponente ist für SPA und serverseitige Auflistung vorgesehen.
- unterstützt Paginierung
- Benötigtes Gittersystem
bootstrap - unterstützt das Sortieren
- Unterstützt vertikales/horizontales Scrollen
- reaktionsschnell
- unterstützt den Dark-Modus
Datenquelle muss Folgendes enthalten:
{
cols: [{ name: 'id', ... }], // optional, can be defined inline in HTML
items: [{ name: 'Row 1' }, { name: 'Row 2' }, ...] // items
page: 1, // current pages
pages: 30, // count of pages
limit: 5, // items limit per page
count: 150 // count of items in DB
}Konfiguration:
pluralizepages {String}Pluralisierung für Seiten (optional, Standard:# pages,# page,# pages,# pages)pluralizeitems {String}Pluralisierung für Elemente (optional, Standard:# items,# item,# items,# items)height {Number/String}Höhen der Netz, unterstützte Werte:auto(Nach dem Stand) - Neuesfluid,parentoderNUMBERals Höhe oderselectorfür jQuery.closest()- NEW
minheight {Number}Minimale Höhe des Netzes, arbeitet mitfluidundautoHöhe (Default:300) - NEW
parent {String}Selektor für dieautoHöhe Option (Default:window) margin {Number}ein oberer Rand für die Höhe (optional, Standard:0)click {String}eine Verbindung zufunction(row, grid, row_el), es wird ausgeführt, wenn der Benutzer auf eine Reihe klickthighlight {Boolean}wird in jeder ausgewählten Reihe (nachclick) hervorgehoben (Default:false)unhighlight {Boolean}ermöglichtundo highlightingder ausgewählten Reihe (Default:true)checked {String}pathzu einer Variable oder Pfad nachfunction(rows, grid)wird ausgeführt, wenn der Benutzer einige Zeilen ausgewählt / überprüftautoselect {Boolean}ermöglicht die automatische Auswahl der ersten Reihe im Netzwerk, es erfülltEXEC(config.click), Standard:falseexec {String}eine Verbindung zufunction(type, page, sort)nur für Server-Seite-Bewegungen (es deaktiviert Client-Seiten-Sortierung und Filterung), unterstützte Typen:refreshoderpagechanged {String}pathzu einer Variable oder Pfad nachfunction(rows, grid)wird ausgeführt, wenn der Benutzer einige Zeilen ändertdblclick {String}eine Verbindung zu der Methodefunction(row, grid, row_el)wird ausgeführt, wenn der Benutzer doppelt klickt auf eine Reihenoborder {Boolean}kann eine Grenze rund um das Netz deaktivieren (Default:false)colwidth {Number}eine Standardweite für Kolumne (Default:150)editable {String}eine Verbindung zufunction(opt)wenn der Benutzer die Bearbeitung durchführtcontextmenu {String}eine Verbindung zufunction(e, grid)wenn der Benutzer das Kontextmenü erhöht
Kolonne Eigenschaften:
name {String}ein Feldnamen in der Reihe von Objektentext {String}eine Spalte-Label, Text mit.fa fa-homewird FontAwesome-Ikon darstellenwidth {Number}eine Spalteweite (optional, Standardconfig.colwidth)align {String}kanncenteroderrightsein (optional, Standard:left)template {String}kann ein Tangular-Template sein und das Modell ist das ganze Objekt der Reihesort {Boolean}ermöglicht die Sortierung (optional, Standard:false)format {String/Number}kann für Datum und Zahlen (Zahl von Decimalen) Feld (optional) verwendet werden, z. B.dd.MM.yyyycurrency {String}ein Währungsformat, einfach eine Währung hinzufügenclass {String}optionale, ein angepaster Kolumnklasseempty {String/Boolean}optionale, kann leer Wert mit dem im leeren Feld definierten Wert wiederschreiben (trueWert verwendet---als Standardwert)type {String}optionale, kann einen Datentyp (boolean,dateodernumber) für das Feld enthalteneditable {Boolean}ermöglicht die Bearbeitung
Methoden:
component.redrawrow(row_object/index)redraws line oder NEW: ersetzt +redrawsrow_objectmit einem neuennew_object_rowcomponent.clear()klärt alle Veränderungencomponent.select(row)wähltrowmuss das gleiche Objekt sein wie in der Datenquellecomponent.rebind(columnsdeclaration)die Methode verwandelt das Schema- NEW:
component.reload()führtconfig.execmit dem aktuellen Filter und Sortierung aus - NEW:
component.empty()empties alle Zeilen
Gut zu wissen:
SET('link.to.data', data, 'noscroll')--> Typnoscrollverhindert die Wiederherstellung des Schraubens
Wie erweitert man eine Klasse?
- Auf die
{{ if active-Linie wird eine Klasse der Reihe erweitert, indem Siedg-active-classhinzufügen, wenn dieactivegültig ist.
[
'{{ if active }} dg-active-class{{ fi }}',
{ name: 'name', text: 'Name', width: 200 },
// other columns ...
]Verwenden Sie es mit <ui-component name="datatable">. Wenn die Komponente noch nicht geladen ist, lädt jComponent sie bei der ersten Verwendung von der Adresse in DEF.fallback herunter (standardmäßig das CDN Componentator). Autor: Peter Širka. Quelle: Componentator-Komponenten-Repository, MIT-Lizenz.
<div style="width:500px;height:400px">
<ui-component name="datatable" path="data" config="highlight:1;exec:paginate;editable:editable;checked:checked;margin:22">
<script type="text/html">
[
{ name: 'name', text: 'Opportunity name', width: 200, sort: 1, editable: 1 },
{ name: 'value', text: 'Value', width: 100, sort: 1, type: 'number', format: 2 },
{ name: 'status', text: 'Status', width: 100, editable: 1 },
{ name: 'owner', text: 'Owner', width: 200 },
{ name: 'newsletter', text: 'Newsletter', width: 100, type: 'boolean' },
{ name: 'date', text: 'Date', width: 200, sort: 1, type: 'date', format: 'yyyy-MM-dd' }
]
</script>
</ui-component>
</div>
<script>
function checked(rows) {
console.log(rows);
}
function editable(opt) {
// opt.row
// opt.col
// opt.value
// opt.next(NEW_VALUE);
opt.next(opt.value + ' (modified)');
}
function paginate(type, page, sort) {
console.log('Page:', page, 'sort:', sort);
}
var data = {};
data.items = [];
data.pages = 53;
data.page = 3;
// data.cols.push({ name: 'name', text: 'Opportunity name', width: 200, sort: true });
// data.cols.push({ name: 'value', text: 'Value', width: 100, sort: true });
// data.cols.push({ name: 'status', text: 'Status', width: 100 });
// data.cols.push({ name: 'owner', text: 'Owner', width: 200 });
// data.cols.push({ name: 'date', text: 'Date', width: 200, sort: true });
for (var i = 0; i < 50; i++)
data.items.push({ name: GUID(20), value: Math.random() * 1000 >> 0, status: GUID(10), owner: 'Peter Širka', newsletter: i % 3 === 0, date: NOW });
</script>