j-DataTable
BETA: Questo componente è mirato per la lista SPA e server-side.
- Supporta la pagina
- Il sistema di rete
bootstrap - Supporto per la sorta
- Supporta la scorrimento orizzontale/verticale
- Rispondi
- Sviluppo - Modo oscuro
data-source deve contenere:
{
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
}Configurazione:
pluralizepages {String}pluralizzazione per pagine (opzionale, predefinito:# pages,# page,# pages,# pages)- pluralizzazione di
pluralizeitems {String}per gli articoli (opzionale, predefinito:# items,# item,# items,# items) height {Number/String}Altezza della rete, valori supportati:auto(in base al nuovo)fluid,parentoNUMBERL’altezza oselectorper il sito jQuery.closest()- NEW
minheight {Number}altezza minima della rete, funziona con altezzafluideauto(default:300) - NEW
parent {String}selettore per l'opzione di altezzaauto(default:window) margin {Number}una margina superiore per l'altezza (opzionale, predefinito:0)click {String}un collegamento afunction(row, grid, row_el), viene eseguito se l'utente fa clic su una rigahighlight {Boolean}ogni riga selezionata (dopoclick) sarà evidenziato (default:false)unhighlight {Boolean}consenteundo highlightingdella linea selezionata (default:true)checked {String}patha una variabile o la strada afunction(rows, grid)viene eseguita se l'utente ha selezionato / controllato alcune righeautoselect {Boolean}consente di selezionare automaticamente la prima riga in rete, esegueEXEC(config.click), standard:falseexec {String}un collegamento afunction(type, page, sort)solo per le operazioni sul server (è in grado di disattivare la classificazione e il filtraggio sul client), tipi supportati:refreshopagechanged {String}patha una variabile o percorso afunction(rows, grid)viene eseguito se l'utente ha cambiato alcune righedblclick {String}un collegamento al metodofunction(row, grid, row_el), viene eseguito se l'utente fa doppio clic su una riganoborder {Boolean}può disattivare una frontiera intorno alla rete (default:false)colwidth {Number}una larghezza predefinita per le colonne (predefinito:150)editable {String}un collegamento afunction(opt)quando l'utente esegue la modificacontextmenu {String}un collegamento afunction(e, grid)quando l'utente alza il menu di contesto
Proprietà della colonna:
name {String}un nome di campo nell'oggetto di rigatext {String}è un'etichetta della colonna, il testo con.fa fa-homerenderà FontAwesome iconwidth {Number}una colonna larghezza (opzionale, predefinitoconfig.colwidth)align {String}può esserecenteroright(opzionale, predefinito:left)template {String}può essere un modello Tangular e il modello è l'intero oggetto della rigasort {Boolean}consente la classificazione (opzionale, predefinito:false)format {String/Number}può essere utilizzato per la data e i numeri (numero di decimali) campo (opzionale), ad esempiodd.MM.yyyycurrency {String}un formato di valuta, basta aggiungere una valutaclass {String}opzionale, un nome di classe personalizzatoempty {String/Boolean}è opzionale, può ri-scrivere il valore vuoto con il valore definito nel campo vuoto (il valoretrueutilizza---come valore predefinito)type {String}opzionale, può contenere un tipo di dati (boolean,dateonumber) per il campoeditable {Boolean}consente di modificare
Metodi:
component.redrawrow(row_object/index)riduce la linea o NEW: sostituisce +Riducerow_objectcon un nuovonew_object_rowcomponent.clear()chiarisce tutti i cambiamenticomponent.select(row)selezionarowdeve essere lo stesso oggetto che nella fonte daticomponent.rebind(columnsdeclaration)il metodo rimborserà lo schema- NEW:
component.reload()esegueconfig.execcon il filtro corrente e la sorta - NEW:
component.empty()impiegano tutte le righe
Buono sapere:
SET('link.to.data', data, 'noscroll')-> tiponoscrolldisabilita la ripresa della scorrimento
Come estendere una classe di riga?
- guardare la linea
{{ if active, si estende una classe di riga aggiungendodg-active-classse ilactivesarà valido
[
'{{ if active }} dg-active-class{{ fi }}',
{ name: 'name', text: 'Name', width: 200 },
// other columns ...
]Utilizzare con <ui-component name="datatable">Quando il componente non è ancora caricato, jComponent Scarica il codice in prima utilizzazione dall'indirizzo DEF.fallback (Il Componentator La storia di Peter Širka.Fonte: il Componentator Ristorante dei componenti, licenza MIT.
<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>