rows | Array JSON contenente i dati della griglia da visualizzare;
es.
[
{ "nome": "Paolo", "cognome": "Parente", "sesso": "M", "dataN": "1986-05-02T00:00:00", "LocN": 12, "livello": 5, "ral": 25000.00, "rsu": false } ,... ] |
header | imposta la struttura delle colonne. Caption: il testo dell'intestazione della colonna; field: il campo del JSON; type: il tipo di dato (string, datetime, int, real, bool, ref, img); midWidth: la larghezza minima della colonna; align: l'allineamento del testo. Il tipo datetime è previsto nel formato ISO 8601 (yyyy-mm-ddThh:mm:ss[.mmm]) o nel formato datetime json (\/Date(1502356881547)\/) e prevede un ulteriore campo format per la formattazione; Per i nuovi inserimenti è possibile impostare i campi iso e utc per sceglire il formato della data; Nel caso di datetime nel formato ISO 8601 la presenza del carattere Z (yyyy-mm-ddThh:mm:ss[.mmm]Z) indica di trattare il dato come datetime UTC. Il tipo real prevede un ulteriore campo sep per l'impostazione del carattere usato come separatore decimale in visualizzazione, due ulteriori campi: min e max e il campo culture per la modalita editing (culture:'it-IT'); Il tipo img prevede un ulteriore campo imgInfo : {"width":"16", "height":"16", "onclik":img_click}; Il tipo int prevede due ulteriori campi: min e max; es.
[
{ "caption": "Nome", "field": "nome", "type": "string", "minWidth": "100px", "align": "left" } ,... ] |
anagrafica | array JSON contente l'anagrafica a cui i dati della griglia fanno riferimento;
es. var struttura = [ { "caption": "Sesso", "field": "sesso", "type": "ref:AnagSesso", "minWidth": "50px", "align": "center" } ]; var AnagSesso = [{ label: "Maschio", value: "M" }, { label: "Femmina", value: "F" }];
$("selettore").giGrid({
|
sort | proprietà che impostata a true attiva l'ordinamento automatico della griglia;
es.
$("selettore").giGrid({
|
filter | imposta il filtro;
es. $("selettore").giGrid("option", { filter: [{field:"sesso", value:'M'}, {field:"LocN", value:'354'}] }); $("selettore").giGrid("refresh"); |
edit | attiva la modalità edit; l'opzione editConfig configura la modalità edit:
add - permette l'aggiunta di righe; edit - permette la modifica, del - permette la cancellazione;
onsave - permette di impostare una funzione di validazione (return true o false) che riceverà
l'oggetto modificato come argomento e una variabile che indica il tipo di operazione (add, edit e del).
L'opzione editTooltip permette di impostare i tooltip delle icone. es.
$("selettore").giGrid({
|
selectable | attiva la selezione della riga. Tramite la proprietà selectableConfig sarà possibile
impostare la gestione dell'evento onselected;
es.
$("selettore").giGrid({
|
dataForm | attiva la visualizzazione in modalità Data Form;
es.
$("selettore").giGrid({
|
cellspacing | distanza in pixel tra le celle;
es.
$("selettore").giGrid({
|
cellpadding | distanza in pixel tra il contenuto e il bordo della cella;
es.
$("selettore").giGrid({
|
resizeHeader | impostata a true permette il ridimensionamento delle colonne;
es.
$("selettore").giGrid({
|
resizeRows | impostata a true permette il ridimensionamento delle righe;
es.
$("selettore").giGrid({
|
rowsPage | imposta il numero di righe per pagina;
es.
$("selettore").giGrid({
|
showPager | impostata a true visualizza i controlli per la navigazione tra le pagine;
es.
$("selettore").giGrid({
|
labelPager | Permette di impostare i tooltip dei controlli per la navigazione tra le pagine;
es.
$("selettore").giGrid({
|
destroy | elimina il controllo dalla pagina;
es. $("selettore").giGrid("destroy"); |
option | permette di impostare/prelevare le opzioni successivamente alla fase di inizializzazione;
es.
$("selettore").giGrid("option", {resizeHeader:false});
|
goPage | permette di fare visualizzare la griglia il contenuto di una determinata pagina;
es. $("selettore").giGrid("goPage", 2); |
getRows | permette di estrarre i dati della griglia;
es. console.log($("selettore").giGrid("getRows")); |
refresh | ridisegna la griglia;
es. $("selettore").giGrid("refresh"); |
sort | ordina la griglia in base al field passato come argomento;
es.
// ordina per il campo nome in modo crescente
// la chiamata successiva ordina per il campo nome in modo decrescente
// la chiamata successiva disattiva l'ordinamento
|
delRow | cancella la riga della tabella ad una determinata posizione (base 0);
es.
// cancella la 2 riga!
|
editRow | imposta la modalità edit di una determinata riga (è richiesta l'opzione Edit=true) - indice a base 0;
es.
// edit della 2 riga!
|
newRow | inserisce una nuova riga dopo la posizione passata come argomento(è richiesta l'opzione Edit=true) - indice a base 0;
es.
// insert nuova riga in modalità edit dopo la 2 riga!
|
selectedIndex | imposta o restituisce la riga selezionata - indice a base 0;
se sono selezionati più elementi (multiselect:true) verrà restituito un array di indici.
es.
// imposta la riga selezionata
|
var dati = [ , { "nome": "Paolo", "cognome": "Parente", "sesso": "M", "dataN": "1986-05-02T00:00:00", "LocN": 12, "livello": 5, "ral": 25000.00, "rsu": false } , { "nome": "Pietro", "cognome": "Pisa", "sesso": "M", "dataN": "1975-11-09T00:00:00", "LocN": 354, "livello": 6, "ral": 30450.70, "rsu": true } ]; $("#GrigliaDati").giGrid({ rows:dati ,cellspacing: 0 , cellpadding: 5 , resizeHeader: true ,resizeRows: true });Risultato:
var dati = [ , { "nome": "Paolo", "cognome": "Parente", "sesso": "M", "dataN": "1986-05-02T00:00:00", "LocN": 12, "livello": 5, "ral": 25000.00, "rsu": false } , { "nome": "Pietro", "cognome": "Pisa", "sesso": "M", "dataN": "1975-11-09T00:00:00", "LocN": 354, "livello": 6, "ral": 30450.70, "rsu": true } ]; var struttura = [ { "caption": "Nome", "field": "nome", "type": "string", "minWidth": "100px", "align": "left" } , { "caption": "Cognome", "field": "cognome", "type": "string", "minWidth": "100px", "align": "left" } , { "caption": "Sesso", "field": "sesso", "type": "ref:AnagSesso", "minWidth": "50px", "align": "center" } , { "caption": "Data di Nascita", "field": "dataN", "type": "datetime", "format": "d/m/y", "minWidth": "100px", "align": "center" } , { "caption": "Località di Nascita", "field": "LocN", "type": "ref:AnagLoc", "minWidth": "100px", "align": "left" } , { "caption": "Liv.", "field": "livello", "type": "int", "minWidth": "30px", "align": "center" } , { "caption": "R.A.L.", "field": "ral", "type": "real", "sep": ",", "minWidth": "100px", "align": "right" } , { "caption": "R.S.U.", "field": "rsu", "type": "bool", "minWidth": "50px", "align": "center" } ]; var AnagSesso = [{ label: "Maschio", value: "M" }, { label: "Femmina", value: "F" }]; var AnagLoc = [{ label: "Roma", value: "354" }, { label: "Napoli", value: "12" }, { label: "Firenze", value: "150" }]; $("#GrigliaDati2").giGrid({ rows: dati , header: struttura , AnagSesso: AnagSesso , AnagLoc: AnagLoc , resizeHeader: true , cellspacing: 0 , cellpadding: 5 });Risultato:
var dati = [ , { "nome": "Paolo", "cognome": "Parente", "sesso": "M", "dataN": "1986-05-02T00:00:00", "LocN": 12, "livello": 5, "ral": 25000.00, "rsu": false } , { "nome": "Pietro", "cognome": "Pisa", "sesso": "M", "dataN": "1975-11-09T00:00:00", "LocN": 354, "livello": 6, "ral": 30450.70, "rsu": true } ]; var struttura = [ { "caption": "Nome", "field": "nome", "type": "string", "minWidth": "100px", "align": "left" } , { "caption": "Cognome", "field": "cognome", "type": "string", "minWidth": "100px", "align": "left" } , { "caption": "Sesso", "field": "sesso", "type": "ref:AnagSesso", "minWidth": "50px", "align": "center" } , { "caption": "Data di Nascita", "field": "dataN", "type": "datetime", "format": "d/m/y", "minWidth": "100px", "align": "center" } , { "caption": "Località di Nascita", "field": "LocN", "type": "ref:AnagLoc", "minWidth": "100px", "align": "left" } , { "caption": "Liv.", "field": "livello", "type": "int", "minWidth": "30px", "align": "center" } , { "caption": "R.A.L.", "field": "ral", "type": "real", "sep": ",", "minWidth": "100px", "align": "right" } , { "caption": "R.S.U.", "field": "rsu", "type": "bool", "minWidth": "50px", "align": "center" } ]; var AnagSesso = [{ label: "Maschio", value: "M" }, { label: "Femmina", value: "F" }]; var AnagLoc = [{ label: "Roma", value: "354" }, { label: "Napoli", value: "12" }, { label: "Firenze", value: "150" }]; $("#GrigliaDati3").giGrid({ rows: dati , header: struttura , AnagSesso: AnagSesso , AnagLoc: AnagLoc , resizeHeader: true , cellspacing: 0 , cellpadding: 5 ,rowsPage: 5 ,showPager: true , labelPager: {"first":"Prima pagina", "previous":"Pagina precedente", "next":"Pagina successiva", "last":"Ultima pagina", "pag":"Pag.", "of":"di"} });Risultato:
Pagina:
var dati = [ , { "nome": "Paolo", "cognome": "Parente", "sesso": "M", "dataN": "1986-05-02T00:00:00", "LocN": 12, "livello": 5, "ral": 25000.00, "rsu": false } , { "nome": "Pietro", "cognome": "Pisa", "sesso": "M", "dataN": "1975-11-09T00:00:00", "LocN": 354, "livello": 6, "ral": 30450.70, "rsu": true } ]; var struttura = [ { "caption": "Nome", "field": "nome", "type": "string", "minWidth": "100px", "align": "left" } , { "caption": "Cognome", "field": "cognome", "type": "string", "minWidth": "100px", "align": "left" } , { "caption": "Sesso", "field": "sesso", "type": "ref:AnagSesso", "minWidth": "50px", "align": "center" } , { "caption": "Data di Nascita", "field": "dataN", "type": "datetime", "format": "d/m/y", "minWidth": "100px", "align": "center" } , { "caption": "Località di Nascita", "field": "LocN", "type": "ref:AnagLoc", "minWidth": "100px", "align": "left" } , { "caption": "Liv.", "field": "livello", "type": "int", "minWidth": "30px", "align": "center" } , { "caption": "R.A.L.", "field": "ral", "type": "real", "sep": ",", "minWidth": "100px", "align": "right" } , { "caption": "R.S.U.", "field": "rsu", "type": "bool", "minWidth": "50px", "align": "center" } ]; var AnagSesso = [{ label: "Maschio", value: "M" }, { label: "Femmina", value: "F" }]; var AnagLoc = [{ label: "Roma", value: "354" }, { label: "Napoli", value: "12" }, { label: "Firenze", value: "150" }]; $("#GrigliaDati4").giGrid({ rows: dati , header: struttura , AnagSesso: AnagSesso , AnagLoc: AnagLoc , resizeHeader: true , cellspacing: 0 , cellpadding: 5 , rowsPage: 5 , showPager: true , labelPager: { "first": "Prima pagina", "previous": "Pagina precedente", "next": "Pagina successiva", "last": "Ultima pagina", "pag": "Pag.", "of": "di" } }); $("#cboSesso").giCombo({ data: AnagSesso, emptyElement: { label: "", value: "-1" } }); $("#cboLocalita").giCombo({ data: AnagLoc, emptyElement: { label: "", value: "-1" } }); function ImpostaFiltro(fieldName, v) { var filtri = $("#GrigliaDati4").giGrid("option", "filter"); filtri = RimuoviFiltro(filtri, fieldName); if (v != null && v != "" && v != "-1") { filtri.push({ field: fieldName, value: v }); } $("#GrigliaDati4").giGrid("option", { filter: filtri }); $("#GrigliaDati4").giGrid("refresh"); } $("#cboSesso").on("change", function () { var v= $(this).val(); ImpostaFiltro("sesso", v); }); $("#cboLocalita").on("change", function () { var v = $(this).val(); ImpostaFiltro("LocN", v); });Risultato:
Sesso: | |
Località: |
var strutturaImg = [ { "caption": "Pagina", "field": "pagina", "type": "string", "minWidth": "100px", "align": "left" } ,{ "caption": "", "field": "urlEditImg", "type": "img", "imgInfo":{"width":"16", "height":"16", "onclik":img_click}, "minWidth": "40px", "align": "center" } ]; var datiImg = [{ pagina: "indice.htm", urlEditImg: "images/EditTableHS.png" } , { pagina: "Autore.htm", urlEditImg: "images/EditTableHS.png" } ,{ pagina: "Licenza.htm", urlEditImg: "images/EditTableHS.png" } ]; function img_click(indice) { var ar= $("#GrigliaDati5").giGrid("getRows"); alert(ar[indice].pagina); } $("#GrigliaDati5").giGrid({rows:datiImg, header:strutturaImg});Risultato:
var dati = [ , { "nome": "Paolo", "cognome": "Parente", "sesso": "M", "dataN": "1986-05-02T00:00:00", "LocN": 12, "livello": 5, "ral": 25000.00, "rsu": false } , { "nome": "Pietro", "cognome": "Pisa", "sesso": "M", "dataN": "1975-11-09T00:00:00", "LocN": 354, "livello": 6, "ral": 30450.70, "rsu": true } ]; var struttura = [ { "caption": "Nome", "field": "nome", "type": "string", "minWidth": "100px", "align": "left" } , { "caption": "Cognome", "field": "cognome", "type": "string", "minWidth": "100px", "align": "left" } , { "caption": "Sesso", "field": "sesso", "type": "ref:AnagSesso", "minWidth": "50px", "align": "center" } , { "caption": "Data di Nascita", "field": "dataN", "type": "datetime", "format": "d/m/y", "minWidth": "100px", "align": "center" } , { "caption": "Località di Nascita", "field": "LocN", "type": "ref:AnagLoc", "minWidth": "100px", "align": "left" } , { "caption": "Liv.", "field": "livello", "type": "int", "minWidth": "30px", "align": "center" } , { "caption": "R.A.L.", "field": "ral", "type": "real", "sep": ",", "minWidth": "100px", "align": "right" } , { "caption": "R.S.U.", "field": "rsu", "type": "bool", "minWidth": "50px", "align": "center" } ]; var AnagSesso = [{ label: "Maschio", value: "M" }, { label: "Femmina", value: "F" }]; var AnagLoc = [{ label: "Roma", value: "354" }, { label: "Napoli", value: "12" }, { label: "Firenze", value: "150" }]; $("#GrigliaDati6").giGrid({ rows: dati ,sort:true , header: struttura , AnagSesso: AnagSesso , AnagLoc: AnagLoc , cellspacing: 0 , cellpadding: 5 , rowsPage: 5 , showPager: true , labelPager: { "first": "Prima pagina", "previous": "Pagina precedente", "next": "Pagina successiva", "last": "Ultima pagina", "pag": "Pag.", "of": "di" } });Risultato:
$("#GrigliaDati7").giGrid({ rows: dati , edit: true , editConfig: { add: true, edit: true, del: true, onsave: function (obj, op) { var ret = false; switch (op) { case "add": ret = true; if (obj.nome == null || obj.nome.length == 0) { alert("nome obbligatorio!"); ret = false; } break; case "edit": ret = true; if (obj.nome == null || obj.nome.length == 0) { alert("nome obbligatorio!"); ret = false; } break; case "del": ret= confirm("cancellazione di " + obj.nome + " " + obj.cognome + "?"); break; } return ret; } } ,editTooltip: {add:'aggiungi', edit:'modifica', del:'cancella', cancel:'annulla', save:'salva'} , header: struttura , AnagSesso: AnagSesso , AnagLoc: AnagLoc , cellspacing: 0 , cellpadding: 5 , rowsPage: 5 , showPager: true , labelPager: { "first": "Prima pagina", "previous": "Pagina precedente", "next": "Pagina successiva", "last": "Ultima pagina", "pag": "Pag.", "of": "di" } });Risultato:
$("#GrigliaDati8").giGrid({ rows: dati , selectable: true , selectableConfig: { onselected: function (pos) { var rg= $("#GrigliaDati8").giGrid("getRows"); var obj= rg[pos]; var lbl= $("#lblSelezionato"); lbl.html("Hai selezionato: " + obj.nome + " " + obj.cognome + ""); } } , header: struttura , AnagSesso: AnagSesso , AnagLoc: AnagLoc , cellspacing: 0 , cellpadding: 5 , rowsPage: 5 , showPager: true , labelPager: { "first": "Prima pagina", "previous": "Pagina precedente", "next": "Pagina successiva", "last": "Ultima pagina", "pag": "Pag.", "of": "di" } });Risultato:
$("#GrigliaDati9").giGrid({ rows: dati , selectable: true , selectableConfig: { multiselect:true } , header: struttura , AnagSesso: AnagSesso , AnagLoc: AnagLoc , cellspacing: 0 , cellpadding: 5 , rowsPage: 5 , showPager: true , labelPager: { "first": "Prima pagina", "previous": "Pagina precedente", "next": "Pagina successiva", "last": "Ultima pagina", "pag": "Pag.", "of": "di" } });Risultato:
$("#GrigliaDati10").giGrid({ rows: datiOptions ,header:[{caption:"Key", field:"key", width:"100px"}, {caption:"Descrizione", field:"desc", width:"400px"}] , cellspacing: 0 , cellpadding: 5 }); $("#SetLarghezza").slider({ value: 400, orientation: 'horizontal', min: 150, max: 700 , slide: function (event, ui) { var header= $("#GrigliaDati10").giGrid("option", "header"); header[1].width= ui.value + "px"; $("#lblLarghezza").text(header[1].width); $("#GrigliaDati10").giGrid("refresh"); } });Risultato:
$("#GrigliaDati11").giGrid({ rows: dati , header: struttura , dataForm:true , dataFormConfig: {widthColLabel:"100px", widthColData:"200px"} ,edit:true , editConfig: { add: true, edit: true, del: true, onsave: function (obj, op) { var ret = false; switch (op) { case "add": ret = true; if (obj.nome == null || obj.nome.length == 0) { alert("nome obbligatorio!"); ret = false; } break; case "edit": ret = true; if (obj.nome == null || obj.nome.length == 0) { alert("nome obbligatorio!"); ret = false; } break; case "del": ret= confirm("cancellazione di " + obj.nome + " " + obj.cognome + "?"); break; } return ret; } } ,editTooltip: {add:'aggiungi', edit:'modifica', del:'cancella', cancel:'annulla', save:'salva'} , AnagSesso: AnagSesso , AnagLoc: AnagLoc , cellspacing: 0 , cellpadding: 5 , labelPager: { "first": "Prima pagina", "previous": "Pagina precedente", "next": "Pagina successiva", "last": "Ultima pagina", "pag": "Pag.", "of": "di" } });Risultato:
data | associa la combo all'array di dati contenente l'anagrafica.
es. var AnagSesso = [{ label: "Maschio", value: "M" }, { label: "Femmina", value: "F" }]; $("#cboSesso").giCombo({ data: AnagSesso}); |
emptyElement | imposta l'elemento per la selezione vuota.
es. var AnagSesso = [{ label: "Maschio", value: "M" }, { label: "Femmina", value: "F" }]; $("#cboSesso").giCombo({ data: AnagSesso, emptyElement: { label: "", value: "-1" }}); |
destroy | elimina il controllo dalla pagina;
es. $("selettore").giCombo("destroy"); |
option | permette di impostare/prelevare le opzioni successivamente alla fase di inizializzazione;
es.
$("selettore").giCombo("option", {data: AnagSesso});
|
refresh | ricarica la combo;
es. $("selettore").giCombo("refresh"); |
var regioni = [{ label: "Campania", value: "1" }, { label: "Lazio", value: "2" }]; var provincie = [ { label: "Avellino", value: "1", parent: "1" }, { label: "Benevento", value: "2", parent: "1" } , { label: "Caserta", value: "3", parent: "1" }, { label: "Napoli", value: "4", parent: "1" } , { label: "Salerno", value: "5", parent: "1" }, { label: "Frosinone", value: "6", parent: "2" } , { label: "Latina", value: "7", parent: "2" }, { label: "Rieti", value: "8", parent: "2" } , { label: "Roma", value: "9", parent: "2" }, { label: "Viterbo", value: "10", parent: "2" } ]; $("#cboProvincie").giCombo({data:[], emptyElement:{label:"", value:"-1"}}); $("#cboRegione").giCombo({data:regioni, emptyElement:{label:"", value:"-1"}}); $("#cboRegione").on("change", function(){ var v= $("#cboRegione").val(); if (v == null || v == "-1" || v == "") { $("#cboProvincie").giCombo("option", "data", []); } else { var ar = provincie.filter(function (o) { return (o.parent == v); }); $("#cboProvincie").giCombo("option", "data", ar); } });Risultato:
Regione | |
Provincie |
Autore: Giovanni Iacobelli
Data: Agosto 2017
$Ver:1.1
Testata su: Firefox e Internet Explorer
Compatibilità: tutti i browser
La libreria puo' essere utilizzata a scopo didattico e per produrre proprio software di qualsiasi genere (persino commerciale) senza alcuna limitazione. Può essere utilizzata senza alcuna limitazione in propri siti web.
La libreria appartiena alla categoria FREEWARE. Ciò significa che puo' essere copiata e distribuita liberamente a patto che non venga venduta e che sia distribuita così come è, ovvero, senza alcuna modifica ed insieme a tutti gli altri file presenti nell'archivio zip. L'autore conserva sui sorgenti tutti i diritti e ne può fare tutto ciò che vuole (compreso venderli).
La libreria può essere liberamente distribuita dalle riviste d'informatica a patto che esse citino l'autore dei sorgenti e indicano il collegamento web del suo sito. E' gradita la comunicazione della pubblicazione.
Puo' essere liberamente distribuiti da siti WEB contenenti raccolte di sorgenti a patto che nella pagina del download venga inserita una didascalia che evidenzi la paternità dei file e un link al sito dell'autore. E' gradita la comunicazione della pubblicazione.
Non possono essere inclusi in propri pacchetti commerciali senza l'autorizzazione scritta dell'Autore. L'autore è Iacobelli Giovanni e il collegamento web del suo sito è http://www.iacosoft.com .