j-DataGrid
Questa rete è stata creata per applicazioni di singola pagina e applicazioni aziendali.
- Il sistema di rete
bootstrap - Puoi rendere più di 30.000 righe senza problemi
- Supporto di drag&drop
- Supporto per la sorta
- Supporta il ripristino delle colonne
- Supporta la scorrimento orizzontale/verticale
- Supporta i filtri
- Supporto dei checkboxes
- Scrollbars indipendenti su OS
- Rispondi
- Sviluppo - Modo oscuro
- IMPORTANT opzioni di colonna filtro ha bisogno di componente
j-Directory
Il Do:
- multisorte
- Ristrutturazione delle colonne per i dispositivi touch
- Ristrutturazione delle colonne per i dispositivi touch
data-source deve contenere:
{
schema: 'schema_id', // NEW: optional, DataGrid supports multiple schemas (it means: multiple declaration of columns)
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
}o Array crudo ma non è possibile utilizzare paginazione e filtri esterni:
[{ name: 'Row 1' }, { name: 'Row 2' }];Configurazione:
filterlabel {String}un locatore predefinito per tutti i filtri (opzionale)rememberfilter {Boolean}con vero che ricorda i filtri per ogni schema (default:true)schema {String}un schema predefinito (default:default)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,parent(oparent1,parent2oNUMBERL’altezza oselectorper il sito jQuery.closest()- L'altezza minima di
minheight {Number}della rete, funziona con l'altofluideauto(default:200) - Selettore
parent {String}per l'opzione di altezzaauto(default:window) margin {Number}una margina superiore per l'altezza (opzionale, predefinito:0)boolean {String}un valore per la filtrazione dei valori booleani (opzionale, predefinito:true|on|yes)resize {Boolean}consente la ripresa delle colonne (opzionale, predefinito:true)reorder {Boolean}consente la re-ordine delle colonne (opzionale, predefinito:true)sorting {Boolean}consente di classificare (opzionale, standardtrue)remember {Boolean}ricorda le colonne di re-ordine e di ritorno (opzionale, standardtrue)checkbox {Boolean}permette il checkboxescolwidth {Number}una larghezza di colonna predefinita in pixel (opzionale, predecessivo150)rowheight {Number}un'altezza di linea predefinita in pixel (opzionale, predecessivo:24) + dipende da CSSalignheader {String/Number}Align per il titoloright(o2ocenter(o1(Opzionale e di default)left)alignfilter {String/Number}Align per il filtro di inputright(o2ocenter(o1(Opzionale e di default)left)align {String/Number}Alineamento per un valore di colonnaright(o2ocenter(o1(Opzionale e di default)left)click {String}un collegamento a un percorso ofunction(row, grid, row_el), un record verrà assegnato/eseguito se l'utente fa clic su una rigaclickid {String}un identificatore/nome di proprietà per il riproduttivo indietro (per l'avanguardia della fila), predefinito:idhighlight {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:falselimit {Number}un limite di cluster, standard:80numbering {Boolean}, standard opzionalefalseallowtitles {Boolean}, permette titoli per tutti i valori di riga, standard opzionalefalsebutton {String}un collegamento afunction(btn_name, row, btn_element, event, name)viene eseguito se l'utente fa clic su un button nella rigaexec {String}un collegamento afunction(type, filter, sort, page)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 righechange {String/Boolean}boolean consente l'editing interno o la riga deve contenere unpatha una variabile o il percorso afunction(meta, next(meta))viene eseguito se l'utente fa doppio clic su una colonna (metapuò esserenullse la rete è rinnovata) +next(null)sostituisce nuovamente il contenuto precedentecolumns {String}è un percorso verso la definizione dicolumns {Array}dblclick {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)clusterize {Boolean}può disattivare la scorrimento clusterato (default:true)contextmenu {String}un collegamento afunction(e, grid)quando l'utente alza il menu di contestoautoformat {Boolean}consente tipi di formato automatico comeemail,phoneenumber(default:true)controls {Boolean}consente i controlli definiti incolumns(default:true)hfunc {String}un collegamento al metodofunction(el), viene eseguito se l'utente fa clic sull'icona aggiunta alla prima riga di titolo. usefull per integrare un altro componente con DataGrid.hfuncicon {String}hfunc icone, come la casa, cog, ecc.pagination {Boolean}: consentono/disabilitano le pagine (default:true)config.execverrà eseguito se la barra di scorrimento è alla fine, e si può usare come risposta maturaarraydelle righe
ovalue {String}una chiave predefinita per ottenerevaluedacolumn.options(predefinito:id)otext {String}una chiave predefinita per otteneretextdacolumn.options(predefinito:name)
Proprietà della colonna:
name {String}un nome di campo nell'oggetto di rigatext {String}è un'etichetta della colonna, il testo con.ti ti-homerenderà l'icona totaletitle {String}una colonna tooltip (opzionale)width {Number}una colonna larghezza (opzionale, predefinitoconfig.colwidth)filter {String/Boolean}è un contenitore del filtro obooleanpuò disattivare il filtro per questa colonna (opzionale)filtervalue {Object}opzionale, un valore di filtro predefinito (default:undefined)filtertype {Number/String},1disabilita la ricerca intelligente (default:0- significa che è abilitata la ricerca inteligente)align {String}può esserecenteroright(opzionale, predefinito:left)template {String}può essere un modello Tangular e il modello è l'intero oggetto della rigasorting {Boolean}consente la classificazione (opzionale, predefinito:true)search {Boolean/String}truefiltrerà un valore in base al risultatotemplateoStringpuò essere un modello Tangular che verrà utilizzato come valore per la ricercaformat {String/Number}può essere utilizzato per la data e i numeri (numero di decimali) campo (opzionale), ad esempiodd.MM.yyyyhide {Boolean}nasconde una colonnalistcolumn {Boolean}: vero, falso per rimuovere la colonna dalla lista delle colonnehidden {String}Come funzione di pistolacolumn => true--> la colonna sarà nascosta (ad esempio per restringere l'utente)options {Object Array}opzionale, un filtro personalizzato per esempio[{ text: 'yes', value: true }, { text: 'no', value: false }]o {String}r collegamento alla fonte di datiotext {String}opzionale, una chiave per il campotextinoptions, standardconfig.otextovalue {String}opzionale, una chiave per il campovalueinoptions, standardconfig.ovaluebuttonapply {String}opzionale, un'etichetta per il pulsanteApplyin colonne, predefinito:Applyclass {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)min {Number}editabile solo un min. valoremax {Number}editabile solo un valore massimorequired {Boolean}- Editore solodirsearch {String/Boolean}un locatore per la ricerca dij-Directory, boolean confalsedisabiliterà la ricercatype {String}opzionale, può contenere un tipo di dati (string,boolean,date,number,email,phoneourl) per il campoeditable {Boolean}consente di modificarecurrency {String}un nome di valuta (deve essere definito inDEF.currencies)editable {String}Un cammino verso il personalizzabilefunction(meta), importante:meta.next(new_value)ometa.cancel()colorize {Boolean}consente di colorare il valoremonospace {Boolean}permette il tipo di font monospaziale- NEW
raw {Boolean}consente/disabilita l'escapazione HTML nei filtri di colonna (default:false) - NEW
pair {Boolean}consente/disabilita il valore automatico in combinazione con la configurazioneoptions(default:false)
Controlli di rotazione (NEW):
- può essere definito come tipo di colonna
controls - deve essere definita la colonna
template(Tangular,rowè un modello per Tangular per ogni riga) - Guarda l’esempio
- Il pulsante di evento
clickviene catturato aconfig.button
Filtrare:
numbers: (1)numbercerca un numero esatto, (2)number - numberè un intervallo tra i numeristrings: (1)stringcerca una riga esatta, (2)string1, string2, string3è un criterio di ricerca multiplodates(1) Il giorno2017Tutte le date di quest'anno (2)2017-02-12 - 2017-03-13--02.12.2017 - 13.03.2017è un intervallo tra le date, (3)12-20 - 12-31--20.12 - 31.12un intervallo tra le date dell'anno in corso e (4)2017-01 - 2018-05--01.2017 - 05.2018o (5)-5 days---1 week---10 years
Metodi:
component.redraw([reselect_again])può riprendere le righe (solo per modifiche, se si rimuove alcune righe è necessario aggiornare l'intero modello)component.resetfilter()può ripristinare un filtrocomponent.exportrows(page_from or true from the current page, pages_count, callback(rows, internal_options), [reset_to_page or true for the current page])può esportare righe con rendering sul servercomponent.appendrow(row_object, [scrolldown], [prepend])appends e render ordinecomponent.redrawrow(row_object, [new_object_row])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.editcolumn(row_index, col_index)esegueconfig.changeinternamente (solo per uso avanzato)component.applyfilter(obj)può applicare un filtro personalizzato{ name: 'Peter', age: '20 - 50' }component.resetcolumns()riproduzione delle colonnecomponent.readfilter()ritorna un filtro attualecomponent.rebind(schemaname__or__columnsdeclaration)il metodo rimborserà lo schemacomponent.reload()esegueconfig.execcon il filtro e la sorta correntecomponent.empty()di tutte le righe- Ristrutturare le colonne
component.redrawcolumns()senza riprendere - NEW:
component.schema(name)cambia un schema e rinvia i dati
Proprietà:
component.metaritorna i metadati interni sui filtri, le colonne e le righe
Buono sapere:
NULL('link.to.data')Valutazioneconfig.execSET('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 ...
]Numerosi schemi:
<ui-component name="datagrid" path="obj">
<script type="text/plain" data-id="SCHEMA_A">
[
{ name: 'name', text: 'Name', width: 200 },
// ...
]
</script>
<script type="text/plain" data-id="SCHEMA_B">
[
{ name: 'price', text: 'Price', width: 100 },
// ...
]
</script>
</ui-component>
<script>
// Usage
var obj = {};
obj.schema = 'SCHEMA_A';
obj.items = [];
// Changing of schema
setTimeout(function() {
obj.schema = 'SCHEMA_B';
obj.items = [];
UPD('obj');
}, 5000);
</script>Utilizzare con <ui-component name="datagrid">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.
<ui-component name="LAZY directory"></ui-component>
<ui-component name="datagrid" path="items" config="margin:22;button:clicked">
<script type="text/plain">
[
{ name: 'name', text: 'Name', width: 200 },
{ name: 'price', text: 'Price', align: 1, alignfilter: 1 },
{ name: 'published', text: 'Public', align: 1, options: [{ name: 'yes', id: true }, { name: 'no', id: false }], type: 'boolean' },
{ name: 'description', text: 'Description', filter: 'Search in description' },
{ name: 'created', text: 'Created', template: '{{ created | format(\'dd.MM.yyyy\') }}', align: 2, alignfilter: 2, alignheader: 2 },
{ type: 'controls', template: '<button name="show"><i class="ti ti-search"></i><span>Show</span></button><button name="edit"><i class="ti ti-pencil"></i></button><button name="remove"><i class="ti ti-trash red"></i></button>' }
]
</script>
</ui-component>
<script>
var items = [];
for (var i = 1; i < 90; i++)
items.push({ name: '{0} Lorem ipsum dolor'.format(i), published: i % 5 !== 0, description: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur, mollitia!', price: i + 100, created: new Date().add('-5 days') });
function clicked(btnname, row, button, e) {
console.log(btnname, row);
}
</script>