j-Grid
- Benötigtes Gittersystem
bootstrap
Datenquelle muss Folgendes enthalten:
{
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
}Konfiguration:
filter{Boolean} zeigt ein Filter (optional, Standard:true)filterlabel{String} ein Standardplatz für alle Filter (optional)external{Boolean} ist eine externe Datenquelle (dynamische Datenladung) (optinisch, Standard:false)pluralizepages{String} Pluralisierung für Seiten (optional, Standard:# pages,# page,# pages,# pages)pluralizeitems{String} Pluralisierung für Artikel (optional, Standard:# items,# item,# items,# items)exec{String} eine Verbindung zufunction(type, filter, sort, page), wird bewertet, ob das Netz einige Operationen durchführtpadding{Number} Höhe Padding (optional, Standard:0)autosize{Boolean} ermöglicht volle Auto-Size (optional, Standardtrue)boolean{String} eine Werte für die Filterung von Boolean-Wert (optional, Standard:true|on|yes)pagination{Boolean} zeigt das Page-Panel (optional, Standard:false)init{Funktion} eine Initfunktion für z.B. angepasste Spaltenchecked{Funktion} Wenn die Zeilen<input type="checkboxenthalten, wird diese Funktion beurteilt, wenn die Checkbox überprüft wird
Kolonne Eigenschaften:
name{String} ein Feldnamen im Objekttext{String} eine Spaltetitle{String} eine Spalte-Tooltype (optional)size{Number} eine Spalte Breite:1Kleine2Mittleren3Große ist,4sehr groß (optional, default)1)size{String} eine Spalteweite in Pixeln, Wert muss enthaltenpxe.g.20pxfilter{String/Boolean} ein Platzhalter für das Filter oderbooleankann Filter für diese Spalte deaktivieren (optional)format{String/Nummer} für Formatwerte (stringfür Datum,numberfür Zahlen)background{String} eine Hintergrundfarbe (optional)align{String} kanncenteroderrightsein (optional, Standard:left)template{String} kann ein Tangular-Template sein und das Modell ist das ganze Objekt der Reiherender{String/Funktion(Wert, Spalte, Reihenfolge)} eine benutzerdefinierte Renderung,stringwird als Feature eines Schildes bewertetheader{String/Funktion(Column)} eine benutzerdefinierte Renderung des Heads,stringwird als Fingerfunktion bewertetsort{Boolean} ermöglicht Sortierung (optional, Standard:true)class{String} zusätzliche Klassen für die Spalte, z. B.hidden-xssearch{Boolean/String}truewird ein Wert nach demtemplateErgebnis filtern oderStringkann ein Tangular-Template sein, das als Wert für die Suche verwendet wird
Filterung:
numbers: (1)numbersucht eine genaue Zahl, (2)number / numberist ein Abschnitt zwischen den Zahlenstrings: (1)stringsucht eine genaue Zeile, (2)string1, string2, string3ist ein mehrerer Suchkriteriumdates: (1) Jahr2017sucht alle Daten in diesem Jahr, (2)2017-02-12 / 2017-03-13ist ein Abschnitt zwischen Daten, (3)20.12 / 31.12ein Ablauf zwischen Daten im aktuellen Jahr
Verwenden Sie es mit <ui-component name="grid">. Wenn die Komponente noch nicht geladen ist, lädt jComponent sie bei der ersten Verwendung von der Adresse in DEF.fallback herunter (standardmäßig das CDN Componentator). Autor: Peter Širka. Quelle: Componentator-Komponenten-Repository, MIT-Lizenz.
<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>