j-Grid
- nödvändigt
bootstrap-system
data-källa måste innehålla:
{
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
}Konfigurera:
filter{Boolean} visar ett filter (alternativt, standard:true)filterlabel{String} en standardplatsbehållare för alla filter (valfritt)external{Boolean} är en extern datakälla (dynamisk data laddning) (optinal, standard:false)pluralizepages{String} pluralisering för sidor (alternativ, standard:# pages,# page,# pages,# pages)pluralizeitems{String} pluralisering för objekt (alternativ, standard:# items,# item,# items,# items)exec{String} en länk tillfunction(type, filter, sort, page), det utvärderas om nätverket utför vissa operationerpadding{Number} höjd padding (alternativ, standard:0)autosize{Boolean} möjliggör full höjd automatisk storlek (alternativt, standardtrue)boolean{String} ett värde för filtrering av booleanvärden (alternativt, standard:true|on|yes)pagination{Boolean} visar sidpanel (alternativt, standard:false)init{Funktion} en init-funktion för t.ex. anpassade kolumnerchecked{Funktion} om raderna kommer att innehålla<input type="checkboxdå denna funktion kommer att utvärderas när checkboxen kontrolleras
Kolumner egenskaper:
name{String} ett fältnamn i objektettext{String} en kolumn etiketttitle{String} en kolumn verktygstyp (alternativ)size{Number} en kolumn bredd:1Liten är,2medelvärdet ,3Stora är,4Mycket stort (alternativt, standard)1)size{String} en kolumn bredd i pixlar, värdet behöver innehållapxt.ex.20pxfilter{String/Boolean} en platsinnehavare för filtret ellerbooleankan inaktivera filter för denna kolumn (alternativt)format{String/Number} för formatering värden (stringför datum,numberför siffror)background{String} en bakgrundsfärg (alternativ)align{String} kan varacenterellerright(alternativt, standard:left)template{String} kan vara en Tangular mall och modellen är hela objektet i radenrender{String/Funktion(värde, kolumn, rad)} en anpassad rendering,stringutvärderas som en pilfunktionheader{String/Funktion(kolumn)} en anpassad rendering av header,stringutvärderas som ett pilfunktionsort{Boolean} möjliggör sortering (alternativ, standard:true)class{String} ytterligare klasser för kolumnen, t.ex.hidden-xssearch{Boolean/String}truekommer att filtrera ett värde enligttemplateresultat ellerStringkan vara en Tangular mall som kommer att användas som en värde för sökning
Filtrera:
numbers: (1)numbersöker ett exakt nummer, (2)number / numberär ett intervall mellan siffrornastrings: (1)stringsöker en exakt sträng, (2)string1, string2, string3är ett flera sökkriteriumdates: (1) år2017söker alla datum i det här året, (2)2017-02-12 / 2017-03-13är ett mellanrum mellan datum, (3)20.12 / 31.12ett intervall mellan datum i detta år
Använd den med <ui-component name="grid">När komponenten ännu inte är laddad, jComponent Ladda ner den första gången från adressen i DEF.fallback (en av Componentator Författare: Peter Širka. källa: The Componentator Komponenterna i lager, MIT licens.
<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>