j-Grid
- potrebný mriežkový systém
bootstrap
Data-source musí obsahovať:
{
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
}Konfigurácia:
filter{Boolean} zobrazuje filter (voliteľné, predvolené:true)filterlabel{String} predvolený umiestňovač pre všetky filtre (opcionálne)external{Boolean} je externý zdroj údajov (dynamické zaťaženie údajov) (optín, predvolený:false)pluralizepages{String} pluralizácia pre stránky (voliteľné, predvolené:# pages,# page,# pages,# pages)pluralizeitems{String} pluralizácia pre položky (voliteľné, predvolené:# items,# item,# items,# items)exec{String} odkaz nafunction(type, filter, sort, page), hodnotí sa, či sieť vykonáva niektoré operáciepadding{Číslo} výška padding (voliteľné, predvolené:0)autosize{Boolean} umožňuje plnú výšku automatickej veľkosti (voliteľné, predvolenétrue)boolean{String} hodnoty na filtrovanie booleánových hodnôt (voliteľné, predvolené:true|on|yes)pagination{Boolean} zobrazuje stránku (opcionálne, predvolené:false)init{Funkcia} funkcia init pre napríklad vlastné stĺpcechecked{Funkcia} ak riadky budú obsahovať<input type="checkboxpotom sa táto funkcia vyhodnotí, keď sa skontroluje kontrolná schránka
Vlastnosti stĺpca:
name{String} názov poľa v objektetext{String} kolónová značkatitle{String} stĺpec nástroj tip (voliteľné)size{Číslo} šírka stĺpca:1malý ,2v priemere ,3Veľký →4Veľmi veľký (voliteľný, default)1)size{String} šírka stĺpca v pixeloch, hodnota musí obsahovaťpxe.g.20pxfilter{String/Boolean} priestorový držiak pre filter alebobooleanmôže vypnúť filter pre túto stĺpec (voliteľné)format{String/Number} pre formátovanie hodnôt (stringpre dátum,numberpre čísla)background{String} farba pozadia (voliteľná)align{String} môže byťcenteraleboright(voliteľné, predvolené:left)template{String} môže byť šablónou Tangular a model je celým objektom riadkurender{String/Function(hodnota, stĺpec, riadok)} je prispôsobené renderovanie,stringsa hodnotí ako funkcia šípkyheader{String/Function(column)} je prispôsobené renderovanie hlavy,stringsa hodnotí ako funkcia šípysort{Boolean} umožňuje sortu (voliteľné, predvolené:true)class{String} ďalšie triedy pre stĺpec, napríkladhidden-xssearch{Boolean/String}truebude filtrovať hodnotu podľa výsledkutemplatealeboStringmôže byť šablóna Tangular ktorá sa použije ako hodnota pre vyhľadávanie
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áva všetky dátumy v tomto roku, (2)2017-02-12 / 2017-03-13je interval medzi dátummi, (3)20.12 / 31.12je intervalom medzi dátumi v aktuálnom roku
Použite ho so <ui-component name="grid">. 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.
<style>
body{padding:50px;margin:0;background-color:#F0F0F0;font-family:Arial;height:100%;}
html{height:100%;}
</style>
<ui-component name="grid" path="griddata" config="exec:filtering">
<script type="text/plain">
[
{ name: 'name', text: 'Name', size: 2, render: 'n => n.toUpperCase()', filter: 'Search in name' },
{ name: 'price', text: 'Price', size: 1, format: 2, filter: 'Search in prices', align: 'right' },
{ name: 'description', text: 'Description', size: 3, filter: 'Search in description' },
{ name: 'created', text: 'Created', size: 1, filter: 'Search in dates', format: 'dd.MM.yyyy', align: 'center' }
]
</script>
</ui-component>
<script>
var griddata = { page: 1, count: 18, pages: 3, limit: 6, items: [] };
var items = griddata.items;
items.push({ name: '1 Lorem ipsum dolor.', description: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur, mollitia!', price: 233, created: new Date().add('-5 days') });
items.push({ name: '2 Lorem ipsum dolor.', description: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur, mollitia!', price: 122, created: new Date().add('-1 year') });
items.push({ name: '3 Lorem ipsum dolor.', description: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur, mollitia!', price: 119, created: new Date().add('-1 month') });
items.push({ name: '4 Lorem ipsum dolor.', description: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur, mollitia!', price: 35.34, created: new Date().add('-14 days') });
items.push({ name: '5 Lorem ipsum dolor.', description: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur, mollitia!', price: 439.33, created: new Date().add('-5 hours') });
items.push({ name: '6 Lorem ipsum dolor.', description: 'Lorem ipsum dolor sit amet, consectetur adipisicing elit. Consectetur, mollitia!', price: 111.12, created: new Date().add('-349 minutes') });
// Auto-resize
$(window).on('resize', function() {
setTimeout2('resize', function() {
EMIT('resize');
}, 100);
});
function filtering(type, filter, sort, page) {
console.log(type, filter, sort, page);
}
</script>