j-Grid
- Il sistema di rete
bootstrap
data-source deve contenere:
{
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:
filter{Boolean} mostra un filtro (opzionale, predefinito:true)filterlabel{String} un contenitore di posizione predefinito per tutti i filtri (opzionale)external{Boolean} è una fonte di dati esterna (carica dinamica dei dati) (optina, predefinita:false)pluralizepages{String} pluralizzazione per le pagine (opzionale, predefinito:# pages,# page,# pages,# pages)pluralizeitems{String} pluralizzazione per gli articoli (opzionale, predefinito:# items,# item,# items,# items)exec{String} un collegamento afunction(type, filter, sort, page), viene valutato se la rete esegue alcune operazionipadding{Numero} di altezza (opzionale, predefinito:0)autosize{Boolean} consente auto-dimensioni di piena altezza (opzionale, standardtrue)boolean{String} un valore per la filtrazione dei valori booleani (opzionale, predefinito:true|on|yes)pagination{Boolean} mostra il pannello di pagina (opzionale, predefinito:false)init{Funzione} una funzione init per es. colonne personalizzatechecked{Funzione} se le righe contengono<input type="checkboxallora questa funzione sarà valutata quando la scatola è controllata
Proprietà della colonna:
name{String} un nome di campo nell'oggettotext{String} un'etichetta della colonnatitle{String} un tooltip della colonna (opzionale)size{Numero} una colonna di larghezza:1Il piccolo,2di mezzo,3Il grande,4molto grande (opzionale, default)1)size{String} una colonna di larghezza in pixel, il valore deve contenerepxecc.20pxfilter{String/Boolean} un contenitore del filtro obooleanpuò disattivare il filtro per questa colonna (opzionale)format{String/Number} per i valori di formattamento (stringper la data,numberper i numeri)background{String} un colore di sfondo (opzionale)align{String} può esserecenteroright(opzionale, predefinito:left)template{String} può essere un modello Tangular e il modello è l'intero oggetto della rigarender{String/Function(valore, colonna, riga)} un rendering personalizzato,stringè valutato come funzione di pistolaheader{String/Function(colonna)} un rendering personalizzato del titolo,stringè valutato come funzione di frecciasort{Boolean} consente la classificazione (opzionale, predefinito:true)class{String} classi aggiuntivi per la colonna, ad esempiohidden-xssearch{Boolean/String}truefiltrerà un valore in base al risultatotemplateoStringpuò essere un modello Tangular che verrà utilizzato come valore per la ricerca
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) anno2017cerca tutte le date in quest'anno, (2)2017-02-12 / 2017-03-13è un intervallo tra le date, (3)20.12 / 31.12è un intervallo tra le data nell'anno corrente
Utilizzare con <ui-component name="grid">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.
<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>