j-DataGrid
Táto mriežka bola vytvorená pre jednostránkové aplikácie a podnikové aplikácie.
- potrebný mriežkový systém
bootstrap - bez problémov vykreslíte viac ako 30 000 riadkov
- podporuje drag&drop stĺpce
- podporuje triedenie
- podporuje zmenu veľkosti stĺpcov
- podporuje vertikálne/horizontálne rolovanie
- podporuje filtre
- podporuje začiarkavacie políčka
- vlastné posuvníky nezávislé na OS
- citlivý
- podporuje tmavý režim
- IMPORTANT filter možností stĺpca potrebuje komponent
j-Directory
TO-DO:
- viactriedny
- zmena veľkosti stĺpcov pre dotykové zariadenia
- preusporiadanie stĺpcov pre dotykové zariadenia
Data-source musí obsahovať:
{
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
}alebo surové Array, ale nemôžete použiť stránkovanie a externé filtre:
[{ name: 'Row 1' }, { name: 'Row 2' }];Konfigurácia:
filterlabel {String}predvolený zástupný symbol pre všetky filtre (voliteľné)rememberfilter {Boolean}s pravým to pripomína filtre pre každý schéma (predvolené:true)schema {String}je predvolená schéma (predvolená:default)pluralizepages {String}pluralita stránok (voliteľné, predvolená hodnota:# pages,# page,# pages,# pages)pluralizeitems {String}množné číslo pre položky (voliteľné, predvolené:# items,# item,# items,# items)height {Number/String}Výška siete, podporované hodnoty:auto(predvolené) _Novýfluid,parentaleboparent1,parent2a) aleboNUMBERako výška aleboselectorpre jQuery.closest()- Minimálna výška siete
minheight {Number}, pracuje s výškoufluidaauto(predvolená:200) - Volič
parent {String}pre možnosť výškyauto(predvolené:window) margin {Number}horný okraj výšky (voliteľné, predvolené:0)boolean {String}hodnoty pre filtrovanie booleánových hodnôt (opcionálne, predvolené:true|on|yes)resize {Boolean}umožňuje revíziu stĺpcov (voliteľné, predvolené:true)reorder {Boolean}umožňuje re-objednávanie stĺpcov (voliteľné, predvolené:true)sorting {Boolean}umožňuje sortivanie (voliteľné, predvolenétrue)remember {Boolean}pripomína re-objednávanie a resing stĺpcov (voliteľné, predvolenétrue)checkbox {Boolean}umožňuje kontrolné boxycolwidth {Number}predvolená šírka stĺpca v pixeloch (opcionálne, predvolené150)rowheight {Number}predvolená vrstva v pixeloch (opcionálne, predvolené:24) + závisí od CSSalignheader {String/Number}align pre hlavičkuright(alebo2) alebocenter(albo1) (voliteľné, predvolené:left)alignfilter {String/Number}align pre vstup filtraright(alebo2) alebocenter(albo1) (voliteľné, predvolené:left)align {String/Number}zhoduje hodnotu stĺpcaright(alebo2) alebocenter(albo1) (opcionálne, predvolené:left)click {String}odkaz na cestu alebofunction(row, grid, row_el), záznam sa priradí/vyplní, ak používateľ klikne na riadokclickid {String}názov identifikátora / majetku pre spätné vysielanie (pre predchádzajúci riadok), predvolený:idhighlight {Boolean}každý vybraný riadok (poclick) bude zvýraznený (predvolené:false)unhighlight {Boolean}povolíundo highlightingzvoleného riadku (predvolené:true)checked {String}pathk premennej alebo ceste kfunction(rows, grid)sa vykoná, ak používateľ vybral/skontroloval niektoré riadkyautoselect {Boolean}umožňuje automatický výber prvého riadku v mriežke, vykonávaEXEC(config.click), predvolené:falselimit {Number}je klastrová hranica, predvolená:80numbering {Boolean}Opcionálny defaultfalseallowtitles {Boolean}, umožňuje titulky pre všetky hodnoty riadkov, voliteľné predvolenéfalsebutton {String}sa spustí odkaz nafunction(btn_name, row, btn_element, event, name)ak používateľ klikne na tlačidlo v riadkuexec {String}odkaz nafunction(type, filter, sort, page)len pre operácie na strane servera (vypína triedenie a filtrovanie na strane klienta), podporované typy:refreshalebopagechanged {String}pathk premennej alebo ceste kfunction(rows, grid)sa vykoná, ak používateľ zmenil niektoré riadkychange {String/Boolean}boolean umožňuje vnútorné úpravy alebo riadok musí obsahovaťpathna variantu alebo trasa nafunction(meta, next(meta))sa vykonáva, ak používateľ dvojnásobne klikne na stĺpec (metamôže byťnullak je sieť obnovená) +next(null)nahrádza predchádzajúci obsah znovacolumns {String}je cesta k definíciicolumns {Array}dblclick {String}prepojenie na metódufunction(row, grid, row_el), vykoná sa, ak používateľ dvakrát klikne na riadoknoborder {Boolean}môže zakázať ohraničenie okolo mriežky (predvolené:false)clusterize {Boolean}môže deaktivovať klastrovanie (predvolené:true)contextmenu {String}odkaz nafunction(e, grid), keď používateľ vyvolá kontextovú ponukuautoformat {Boolean}umožňuje automatické formáty, ako jeemail,phoneanumber(predvolené:true)controls {Boolean}umožňuje kontroly definované vcolumns(predvolené:true)hfunc {String}odkaz na metódufunction(el), je spustený, ak používateľ klikne na ikonu pridanú do veľmi prvého riadku hlavy. usefull integrovať inú zložku s DataGrid.hfuncicon {String}hfunc ikona napr. dom, cog, atď.pagination {Boolean}umožňuje/nesúhlasí vyhľadávanie (predvolené:true)config.execbude spustený, ak je vrstva na konci a môžete použiť ako surovú odpoveďarrayriadkov
ovalue {String}je predvolený kľúč na získanievaluezcolumn.options(predvolený:id)otext {String}je predvolený kľúč na získanietextzcolumn.options(predvolený:name)
Vlastnosti stĺpca:
name {String}názov poľa v objekte riadkutext {String}je stĺpecová značka, text s.ti ti-homezobrazí ikonu Totaltitle {String}nástrojový typ stĺpca (voliteľné)width {Number}šírka stĺpca (voliteľné, predvolená hodnotaconfig.colwidth)filter {String/Boolean}môže byť umiestnený na filter alebobooleanmôže byť vypnutý filter pre túto stĺpec (voliteľné)filtervalue {Object}voliteľné, preddefinovaná hodnota filtra (predvolená hodnota:undefined)filtertype {Number/String},1zabraňuje inteligentnému vyhľadávaniu (predvolené:0- to znamená, že je zapnuté inteligentné vyhľadávanie)align {String}môže byťcenteraleboright(voliteľné, predvolené:left)template {String}môže byť šablóna Tangular a model je celý objekt riadkusorting {Boolean}umožňuje triedenie (voliteľné, predvolené:true)search {Boolean/String}truebude filtrovať hodnotu podľa výsledkutemplatealeboStringmôže byť šablónou Tangular, ktorá sa použije ako hodnota pre vyhľadávanieformat {String/Number}je možné použiť pre pole dátumu a čísel (počet desatinných miest) (voliteľné), napr.dd.MM.yyyyhide {Boolean}skrýva stĺpeclistcolumn {Boolean}predvolené: pravdivé, falošné pre odstránenie stĺpcov zoznamuhidden {String}ako strela funkciacolumn => true-> stĺpec bude skryté (napríklad pre obmedzujúceho používateľa)options {Object Array}voliteľné, vlastný filter napríklad[{ text: 'yes', value: true }, { text: 'no', value: false }]o {String}r odkaz na zdroj údajovotext {String}voliteľné, kľúč pre poletextvoptions, predvolenéconfig.otextovalue {String}voliteľné, kľúč pre polevaluevoptions, predvolenéconfig.ovaluebuttonapply {String}voliteľné, štítok pre tlačidloApplyv stĺpcoch, predvolené:Applyclass {String}voliteľné, názov triedy vlastného stĺpcaempty {String/Boolean}voliteľné, môže prepísať prázdnu hodnotu hodnotou definovanou v prázdnom poli (hodnotatruepoužíva---ako predvolenú hodnotu)min {Number}editable iba min. hodnotamax {Number}editable iba max. hodnota číslarequired {Boolean}editable ibadirsearch {String/Boolean}je umiestnený pre vyhľadávaniej-Directory, boolean sfalsebude vypnúť vyhľadávaťtype {String}voliteľné, môže obsahovať typ údajov (string,boolean,date,number,email,phonealebourl) pre poleeditable {Boolean}umožňuje editáciucurrency {String}menový názov (musí byť definovaný vDEF.currencies)editable {String}Cesta k úpravámfunction(meta)Dôležité je:meta.next(new_value)alebometa.cancel()colorize {Boolean}umožňuje farbenie hodnotymonospace {Boolean}umožňuje typ písma monospace- NEW
raw {Boolean}umožňuje/nezabudne únik HTML v stĺpcoch filtrov (predvolené:false) - NEW
pair {Boolean}umožňuje/nesúhlasí automatickú hodnotu v páre s konfiguráciouoptions(predvolené:false)
Kontroly riadenia (NEW):
- Môže byť definovaný ako stĺpec typu
controls - musí definovať stĺpec
template(Tangular,rowje model pre Tangular pre každý riadok) - Pozrite sa na príklad
- tlačidlo
clicksa zachytáva naconfig.button
filtrovanie:
numbers: (1)numbervyhľadáva presné číslo, (2)number - numberje interval medzi číslamistrings: (1)stringvyhľadáva presný riadok, (2)string1, string2, string3je viacnásobné kritérium hľadaniadates(1) rok2017Vyhľadávanie všetkých dátumov v tomto roku, (2)2017-02-12 - 2017-03-13--02.12.2017 - 13.03.2017je interval medzi dátummi, (3)12-20 - 12-31--20.12 - 31.12interval medzi dátummi v danom roku a (4)2017-01 - 2018-05--01.2017 - 05.2018alebo (5)-5 days---1 week---10 years
Metódy:
component.redraw([reselect_again])môže znova prevrátiť riadky (len pre úpravy, ak odstránite niektoré riadky, ktoré potrebujete aktualizovať celý model)component.resetfilter()môže resetovať filtercomponent.exportrows(page_from or true from the current page, pages_count, callback(rows, internal_options), [reset_to_page or true for the current page])môže vyvážať riadky s serverovým renderovanímcomponent.appendrow(row_object, [scrolldown], [prepend])prichádza a renderujecomponent.redrawrow(row_object, [new_object_row])prekreslí riadok alebo NEW: nahradí+prekreslírow_objectnovýmnew_object_rowcomponent.clear()vymaže všetky zmenycomponent.select(row)vyberierowmusí byť rovnaký objekt ako v zdroji údajovcomponent.editcolumn(row_index, col_index)vykonávaconfig.changeinterne (len pre pokročilé použitie)component.applyfilter(obj)môže použiť vlastný filter{ name: 'Peter', age: '20 - 50' }component.resetcolumns()reštartovanie stĺpcovcomponent.readfilter()vráti aktuálny filtercomponent.rebind(schemaname__or__columnsdeclaration)metóda znovu spája schémucomponent.reload()spúšťaconfig.execs aktuálnym filtrovým a sortiacím systémomcomponent.empty()empties všetky riadkycomponent.redrawcolumns()redraw stĺpce bez ich resetovania- NEW:
component.schema(name)mení schému a osviežuje údaje
Vlastnosti:
component.metavráti interné meta informácie o filtroch, stĺpcoch a riadkoch
Je dobré vedieť:
NULL('link.to.data')vyhodnocujeconfig.execSET('link.to.data', data, 'noscroll')--> Typnoscrollzakáže resetovanie rolovania
Ako rozšíriť triedu riadkov?
- pozrite sa na riadok
{{ if active }}, rozširuje triedu riadku pridanímdg-active-class, ak bude platnýactive
[
'{{ if active }} dg-active-class{{ fi }}',
{ name: 'name', text: 'Name', width: 200 },
// other columns ...
]Viaceré schémy:
<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>Použite ho so <ui-component name="datagrid">. Keď komponent ešte nie je načítaný, jComponent ho stiahne pri prvom použití z adresy v DEF.fallback (predvolene CDN Componentator). Autor: Peter Širka. Zdroj: úložisko komponentov Componentator, licencia 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>