j-DataTable
BETA: Deze component is gericht op SPA en server-side listing.
- Ondersteunt pagina's
- Een
bootstrap-netwerk nodig - Ondersteunt het sorteren
- Ondersteunt verticale/horizontaal scrolling
- Reactie
- Ondersteunt het donkere mode
_Data-bron__ moet bevatten:
{
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
}Configuratie:
pluralizepages {String}pluralisatie voor pagina's (optional, standaard:# pages,# page,# pages,# pages)pluralizeitems {String}pluralisatie voor items (optional, standaard:# items,# item,# items,# items)height {Number/String}Hoogte van het netwerk, ondersteunde waarden:auto(de standaard) _NIEWfluid,parentOfNUMBERAls hoogte ofselectorvoor jQuery.closest()- NEW
minheight {Number}minimumhoogte van het netwerk, werkt metfluidenautohoogte (default:300) - NEW
parent {String}selector voor deautohoogte optie (default:window) margin {Number}een topmarge voor hoogte (optional, standaard:0)click {String}een link naarfunction(row, grid, row_el), het wordt uitgevoerd als de gebruiker op een rij klikthighlight {Boolean}wordt aangegeven in elke geselecteerde volgorde (naclick) (default:false)unhighlight {Boolean}maaktundo highlightingvan de geselecteerde volgorde mogelijk (default:true)checked {String}pathnaar een variabele of pad naarfunction(rows, grid)wordt uitgevoerd als de gebruiker bepaalde lijnen heeft geselecteerd/checktautoselect {Boolean}maakt het mogelijk om de eerste rij in het net te selecteren, het uitvoertEXEC(config.click), standaard:falseexec {String}een link naarfunction(type, page, sort)voor server-side-activiteiten alleen (dit stelt de client-side sortering en filteren niet in staat), ondersteunde soorten:refreshofpagechanged {String}pathnaar een variabele of pad naarfunction(rows, grid)wordt uitgevoerd als de gebruiker bepaalde lijnen verandertdblclick {String}een link naar defunction(row, grid, row_el)methode, het wordt uitgevoerd als de gebruiker dubbel klikt op een rijnoborder {Boolean}kan een grens rond het netwerk ontgrendelen (default:false)colwidth {Number}een standaard breedte voor kolommen (default:150)editable {String}een link naarfunction(opt)wanneer de gebruiker bewerktcontextmenu {String}een link naarfunction(e, grid)wanneer de gebruiker het contextmenu opneemt
Column eigenschappen:
name {String}een naam van het veld in de volgorde objecttext {String}een kolom label, tekst met.fa fa-homemaakt FontAwesome iconwidth {Number}een kolombreedte (optional, standaardconfig.colwidth)align {String}kancenterofrightzijn (optional, standaard:left)template {String}kan een Tangular-template zijn en het model is het gehele object van de rijsort {Boolean}maakt het mogelijk om te sorteren (optional, default:false)format {String/Number}kan worden gebruikt voor de datum en cijfers (het aantal decimalen) veld (optional), bijvoorbeelddd.MM.yyyycurrency {String}een valuta format, gewoon een munt toevoegenclass {String}optioneel, een aangepaste kolomklasse naamempty {String/Boolean}optioneel, kan leegte met de waarde gedefinieerd in leeg veld opnieuw schrijven (truewaarde gebruikt---als standaardwaarde)type {String}optioneel, kan een gegevenstype bevatten (boolean,dateofnumber) voor het veldeditable {Boolean}kan worden bewerkt
Methoden:
component.redrawrow(row_object/index)redraws rij of NEW: vervangt + redraysrow_objectmet een nieuwenew_object_rowcomponent.clear()verwijdert alle veranderingencomponent.select(row)selecteertrowmoet hetzelfde object zijn als in de gegevensbroncomponent.rebind(columnsdeclaration)de methode herbindt het schema- NEW:
component.reload()uitvoertconfig.execmet de huidige filter en sortering - NEW:
component.empty()empties alle lijnen
Goed om te weten:
SET('link.to.data', data, 'noscroll')--> typenoscrollontbreekt om te scrollen
Hoe kan ik een klasse van rij uitbreiden?
- Kijk naar de
{{ if active-lijn, het vergroot een rangklasse doordg-active-classtoe te voegen als deactivegeldig is
[
'{{ if active }} dg-active-class{{ fi }}',
{ name: 'name', text: 'Name', width: 200 },
// other columns ...
]Gebruik het met <ui-component name="datatable">Wanneer de component nog niet is geladen, jComponent Download het op eerste gebruik van het adres in DEF.fallback (De Componentator Schrijver: Peter Širka. bron: de Componentator Componenten repository, MIT licentie.
<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>