j-Grid
- Een
bootstrap-netwerk nodig
_Data-bron__ moet bevatten:
{
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:
filter{Boolean} toont een filter (optional, standaard:true)filterlabel{String} een standaard plaatshouder voor alle filters (optional)external{Boolean} is een externe gegevensbron (dynamische data loading) (optische, standaard:false)pluralizepages{String} pluralisatie voor pagina's (optional, standaard:# pages,# page,# pages,# pages)pluralizeitems{String} pluralisatie voor items (optional, standaard:# items,# item,# items,# items)exec{String} een link naarfunction(type, filter, sort, page), wordt geëvalueerd als het netwerk bepaalde operaties uitvoertpadding{Nummer} hoogte padding (optional, standaard:0)autosize{Boolean} maakt volledige auto-grootte mogelijk (optional, standaardtrue)boolean{String} een waarde voor het filteren van boolean waarden (optional, standaard:true|on|yes)pagination{Boolean} toont pagina's (optional, standaard:false)init{Function} een initfunctie voor bijvoorbeeld aangepaste kolommencheckedAls de rijen bevatten<input type="checkboxDan wordt deze functie geëvalueerd wanneer de checkbox wordt gecontroleerd.
Column eigenschappen:
name{String} een veldnaam in het objecttext{String} een kolom labeltitle{String} een kolom tooltip (optional)size{Nummer} een kolom breedte:1Kleine2Het medium,3groot is,4zeer groot (optional, default)1)size{String} een kolom breedte in pixels, waarde moet bevattenpxe.g.20pxfilter{String/Boolean} een plaatshouder voor het filter ofbooleankan de filter voor deze kolom uit te schakelen (optional)format{String/Number} voor formattingwaarden (stringvoor datum,numbervoor cijfers)background{String} een achtergrondkleur (optional)align{String} kancenterofrightzijn (optional, standaard:left)template{String} kan een Tangular-template zijn en het model is het gehele object van de rijrender{String/Function(waarde, kolom, rij)} een aangepaste rendering,stringwordt beoordeeld als een pijlfunctieheader{String/Function(column)} een aangepaste rendering van de header,stringwordt beoordeeld als een pijlfunctiesort{Boolean} maakt het mogelijk om te sorteren (optional, default:true)class{String} extra klassen voor de kolom, bijvoorbeeldhidden-xssearch{Boolean/String}truezal een waarde filteren volgens het resultaat vantemplateofStringkan een Tangular template die als waarde voor zoekopdrachten wordt gebruikt.
Filteren:
numbers: (1)numberzoekt een exacte getal, (2)number / numberis een interval tussen cijfersstrings: (1)stringzoekt een nauwkeurige lijn, (2)string1, string2, string3is een meerdere zoekcriteriadates: (1) jaar2017zoekt alle data in dit jaar, (2)2017-02-12 / 2017-03-13is een interval tussen data, (3)20.12 / 31.12is een intervall tussen data in het huidige jaar
Gebruik het met <ui-component name="grid">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.
<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>