===== Tabelle =====
* [[tabelle#Tabelle|Tabelle]]
* [[tabelle#struttura|Struttura]]
* [[tabelle#Formattazione_di_celle|Formattazione di celle]]
* [[Grid_albero#Grid ad Albero]]
* [[sviluppo:tabelle:sottogriglia#Sottogriglia]]
* [[sviluppo:tabelle:datasheet|Tabella con editing inline multiplo (ita-dataSheet)]]
* [[tabelle#anagrafica_metadati_tabella|Anagrafica metadati tabella]]
* [[tabelle#anagrafica_metadati_colonne|Anagrafica metadati colonne]]
\\
**Per quanto riguarda //i dati elemento// per una tabella sono:**
* //Nome Univoco Elemento// Preceduto dal prefisso "grid". Es. gridTabella
* //Tipo elemento://
* **table-> ita-jqGrid**: Tabella. **Stile:** definito dal tema.
* //Classe elemento// ( **ita-jqGrid** )
* //Colonne elemento// Per indicare il numero di colonne che deve avere la tabella.
* **Nota**. Se si inserisce un valore inferiore al numero di colonne, la form darà errore. Mentre se si inserisce un numero superiore andrà bene ugualmente.
**Dati non necessari:**\\
* //Classe label//
* //Posizione label//
* //Larghezza label//
* //Access key//
* //Testo alternativo//
* Caratteristiche input elemento:
* //Obbligatorio//
\\
**Attributi elemento più tutti quelli html possibili per gli elementi:**\\
* **class**:
* E' possibile impostare la classe: **ita-jqGrid** anche qui.
* **metadati** , sempre racchiusi tra {...}:
* **cellEdit:true/false,** -> Rende la cella modificabile o meno.
* **rowList:[],** -> Lista delle righe
* **rowNum:n,** -> Numero di righe da visualizzare nella form (Se si vorranno ottenere tutte le righe in una sola pagina sarà necessario impostare il **rowNum** ad un numero uguale o superiore al numero di righe contenuto nel DB)
* **caption: "Titolo"** -> E' l'intestazione visualizzata nelle Grid
* **sortname:'NomeCampo',** -> Riordinare per nome,'Nome del campo che viene usato per riordinare'
* **sortorder:'NomeCampo',** -> Riordinare con ordine ascendente o discendente, per default è ascendente
* **navGrid:true/false,** -> Visualizza o meno la barra che conterrà i vari bottoni di navigazione. **Se impostata su false e altri eventuali bottoni su true, i bottoni non verranno ugualmente visualizzati.** (Es. navButtonDel,navButtonAdd ecc.)
* **navButtonDel:true/false,** -> Imposta il bottone del(cancella) visibile/non visibile
* **navButtonAdd:false/true,** -> Definisce se il bottone Add è visibile/non visibile
* **navButtonEdit:true/false,** -> Imposta il bottone edit visibile/non visibile
* **navButtonView:true/false,** -> Imposta il bottone view visibile/non visibile
* **navButtonExcel:true/false,** -> Imposta il bottone Excel visibile/non visibile
* **navButtonPrint:true/false,** -> Imposta il bottone Stampa visibile/non visibile
* **navButtonRefresh:true/false,** -> Imposta il bottone Refresh visibile/non visibile
* **shrinkToFit:true/false,** -> Adatta la tabellla alla workspace
* **resizeToParent:true/false** -> Adatta la tabella alla workspace, la ridimensiona a seconda dello spazio che ha a disposizione.
* **maximized:true/false,** -> Espande l'elemento, in questo caso la tabella, per lo spazio disponibile.
* **closeButton:true/false,** -> (?)
* **autowidth:true/false,**-> Per impostare la larghezza della tabella automatica.
* **autoheigth:true/false,**-> Per impostare l'altezza della tabella automatica.
* **pgbuttons:true/false,** -> Per visualizzare o meno i bottoni di navigazione delle pagine della tabella.(Se non inserito tra i metadati i bottoni verranno automaticamente visualizzati)
* **pginput:true/false,** -> Per visualizzare o meno la text per inserire direttamente il N° della pagina della tabella a cui si vuole andare(Se non inserito tra i metadati verrà automaticamente visualizzata)
* **itaSelectable:true**: Abilita l'evento select di una cella
* **multiselect:true/false,**: Abilita la multiselezione
* ** altRows:true/false,**: Imposta l'effetto "zebra", le righe assumono in modo alternato 2 colori differenti.
* **filterToolbar**:true/false -> Abilita l'utilizzo dei filtri sopra alle colonne, per poter effettuare una ricerca più dettagliata
* **showInlineButtons**: { view: (boolean), edit: (boolean), delete: (boolean) } -> Abilita i bottoni per le azioni impostate all'interno delle singole righe. E' possibile impostare la variabile a "//true//" per abilitare tutti i pulsanti.
\\
**Nota.**\\
Per maggiori informazioni sui Metadati (Opzioni) della grid consulta anche [[http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options|Questa Lista]]
\\
***style:**
* **font-size:** Se inserito è possibile definire le dimensioni del testo
* **font-style:** Se inserito è possibile definire lo stile utilizzato(Italic,Underscore,Bold)
* **font-weight:** Se inserito è possibile definire lo spessore del font
* **color:** Se inserito è possibile definire il colore
* **margin-top:px/%/auto:** Utilizzato per definire il margine dal **th**. A che distanza dal th verranno visualizzati i vari td.
* **margin-left:px/%/auto:** Utilizzato per definire la distanza dei td dal margine sinistro
* **margin right:px/%/auto:** Utilizzato per definire la distanza dei td dal margine destro
\\
Esempio:
\\
^ Nome Attributo ^ Valore Attributo ^
| class | {caption: "Elenco Passi Procedimento",width:570,height:320,autowidth:true,rowNum:1000,rowList:[],navGrid:true,navButtonEdit:true,navButtonAdd:true,navButtonDel:true,shrinkToFit:true,resizeToParent:true,pgbuttons:false,pginput:false} |
| style | font-size:100%; |
==== Struttura =====
Generalmente è utilizzata per i **td**, in quanto il **th** oltre ad un //label elemento// non necessita di altri attributi.
\\
La **table-> ita-jqGrid** gestisce automaticamente i campi che verranno riempiti, e come sottoelementi della tabella dovranno essere dichiarati i vari th(Intestazioni) e td(colonne).
\\
**Per quanto riguarda i dati elemento per gli elementi delle tabelle utilizzabili sono:**
* //Nome Univoco Elemento//
* //Tipo elemento://
* **th-> generico**: Intestazione di una tabela
* **th-> vuoto**: Intestazione di una tabella impostato vuoto.
* **td-> generico**: Colonna generica di una tabella.
* //Label elemento:// Per impostare l'intestazione. Generalmente utilizzata per i th generico e th vuoto. Non deve quindi essere impostato in un **td-> generico**.
**Dati non necessari:**\\
* //Classe label//
* //Posizione label//
* //Larghezza label//
* //Access key//
* //Testo alternativo//
* //Classe elemento//
* //Colonne elemento//
* Caratteristiche input elemento:
* //Obbligatorio//
\\
**Attributi elemento più tutti quelli html possibili per gli elementi:**\\
\\
* ** class:**
* **Width:** Utilizzato per definire la larghezza della cella.Necessario nel **td**.(Espressa in pixel, ma è possibile aggiungere un % per una larghezza in percentuale)
* **Height:** Utilizzato per definire l'altezza della cella.(espressa in pixel, ma è possibile aggiungere un % per una larghezza in percentuale)
* **Metadati:**
* **formatter:'checkbox', formatoptions:{disabled:true}** [[tabelle#Rendere una cella una checkbox|Esempio]]
* **formatter:'currency',** Per formattare una cella in tipo valuta (1,00)[[tabelle#Rendere una cella di formato valuta 0,00|Esempio]]
* **formatter:eqdate, formatoptions:{disabled:true}** [[tabelle#Rendere una cella Date|Esempio]]
* **editable:true,cellEdit:true** Per rendere una cella editabile.[[tabelle#Rendere una cella Editabile|Esempio]]
* **editoptions:{maxlength:N}:** Dare una massima lunghezza ad una cella.[[tabelle#Maxlength Ad una Cella|Esempio]]
* **selectable:true:** Formattazione che rende la cella selezionabile e che al click fa ritornare l'evento "cellSelect".
* **style:**
* **font-size :** Se inserito è possibile definire le dimensioni del testo
* **font-style :** Se inserito è possibile definire lo stile utilizzato(Italic,Underscore,Bold)
* **font-weight :** Se inserito è possibile definire lo spessore del font
===== Formattazione di celle: =====
==Rendere una cella una checkbox==
\\
Formatter:\\
\\
{formatter:'checkbox', formatoptions:{disabled:true}}\\
\\
**Nota.**\\
disabled:true -> se impostato su false, le celle(Checkbox) vengono abilitate alla modifica.\\
\\
Esempio:
\\
^ Nome Attributo ^ Valore Attributo ^
| class | {formatter:'checkbox', formatoptions:{disabled:true}} |
\\
\\
-----
==Maxlength Ad una Cella==
\\
editoptions:\\
\\
{editoptions:{maxlength:2}}\\
\\
\\
Esempio:
\\
^ Nome Attributo ^ Valore Attributo ^
| class | {editable:true,cellEdit:true,editoptions:{maxlength:2}} |
\\
\\
-----
==Rendere una cella Date==
\\
Formatter:\\
\\
{formatter:eqdate, formatoptions:{disabled:true}}
**Nota.**\\
disabled:true -> se impostato su false, le celle(Checkbox) vengono abilitate alla modifica.\\
\\
Esempio:
\\
^ Nome Attributo ^ Valore Attributo ^
| class | {formatter:eqdate, formatoptions:{disabled:true}} |
\\
\\
------
==Rendere una cella Editabile==
\\
Per rendere una cella editabile tra i metadati della cella (td) è opportuno inserire:\\
{editable:true,cellEdit:true} -> se impostato su false o comunque non viene inserito il metadato "editable:true" la cella non risulterà editabile.
Esempio:
\\
^ Nome Attributo ^ Valore Attributo ^
| class | {editable:true,cellEdit:true} |
\\
\\
------
==Rendere una colonna non sortabile==
\\
Per rendere una colonna non sortabile è opportuno inserire:\\
{sortable:false} -> se impostato su false o comunque non viene inserito il metadato "sortable:false" la colonna sarà sortabile.
Esempio:
\\
^ Nome Attributo ^ Valore Attributo ^
| class | {sortable:false} |
\\
\\
------
==Rendere una cella di formato valuta 0,00==
Per rendere una cella di formato valuta tra i metadati della cella (td) è opportuno inserire:\\
{formatter:'currency'}\\
\\
E' possibile inserire alcuni formatoption come:\\
* formatoptions:{....}
* **{prefix: "€ "}** Per mettere come prefisso il simbolo €
* **{decimalPlaces: N}** Dove N indica quanti valori ci dovranno essere dopo la ","
* **{decimalSeparator:" "}** All'interno degli apici dovrà essere indicato il separatore dei decimali, come ad esempio: "," o "."
* **{thousandsSeparator: " "}** All'interno degli apici dovrà essere indicato il separatore delle migliaia , come ad esempio "," o "."
* **{defaultValue: 'valore'}** All'interno dovrà essere indicato il valore che deve essere visalizzato di deafult, come ad esempio "0.00" o "0,00"
* **{ suffix:""}** All'interno degli apici può essere indicato il suffisso dei valori come un "." o qualsiasi altro suffisso.
\\
\\
Esempio Solo Formatter:
\\
^ Nome Attributo ^ Valore Attributo ^
| class | {formatter:'currency'} |
\\
\\
Esempio Formatter e FormatOption:
\\
^ Nome Attributo ^ Valore Attributo ^
| class | {formatter:'currency',formatoptions:{prefix: "€ "}} |
\\
===== Anagrafica metadati tabella =====
^ Metadato ^ Valore ^ Default ^ Descrizione ^
| altRows | (boolean) | false | Abilita colori alternati per le righe della tabella. |
| caption | (string) | %%'%%%%'%% | La caption della tabella. Se vuoto non viene inserito l'header della caption. |
| cellEdit | (boolean) | false | Abilita l'edit inline nelle celle. |
| filterToolbar 1 | (boolean) | false | Abilita la barra dei filtri. |
| itaSelectable 1 | (boolean) | | Abilita gli eventi alla selezione delle righe. |
| multiselect | (boolean) | false | Abilita le checkbox per la seleziona multipla delle righe. |
| multiselectEvents 1 | (boolean) | false | Abilita gli eventi alla spunta delle checkbox di selezione multipla. |
| pgbuttons | (boolean) | true | Indica se mostrare i pulsanti di navigazione pagine. |
| pginput | (boolean) | true | Indica se mostrare l'input per l'inserimento della pagina da navigare. |
| resizeToParent 1 | (boolean) | false | Abilita l'autoresize della griglia relativamente alla width e height dell'elemento padre. |
| rowList | (array) | [] | Se popolato, costruisce una select per la selezione delle righe da mostrare in una pagina basata sui valori inseriti nell'array. |
| rowNum | (int) | 20 | Numero di righe da mostrare per pagina. |
| showAuditColumns 1 | (boolean) | false | |
| showRecordStatus 1 | (boolean) | false | |
| showInlineButtons 1 | (boolean%%|%%array) | false | |
| shrinkToFit | (boolean) | | |
| sortname | (string) | %%'%%%%'%% | Nome della colonna per cui ordinare i dati della tabella all'apertura. |
| sortorder | (string) | 'asc' | Ordine per cui sortare la colonna. I valori accettati sono ''asc'' e ''desc''. |
^ ^^^^
| navGrid 1 | (boolean) | false | |
| navButtonAdd 1 | (boolean) | false | |
| navButtonEdit 1 | (boolean) | false | |
| navButtonCopy 1 | (boolean) | false | |
| navButtonDel 1 | (boolean) | false | |
| navButtonView 1 | (boolean) | false | |
| navButtonExcel 1 | (boolean) | false | |
| navButtonPrint 1 | (boolean) | false | |
| navButtonRefresh 1 | (boolean) | false | |
| columnChooser 1 | (boolean) | true | |
^ ^^^^
| onExpandNode 1 | (boolean) | false | |
| onCollapseNode 1 | (boolean) | false | |
| expandAllButton 1 | (boolean) | false | |
1) metadato custom\\
\\
Per tutti i parametri originali, è possibile consultare la [[http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options#options|documentazione ufficiale]].
===== Anagrafica metadati colonne =====
^ Metadato ^ Valore ^ Default ^ Descrizione ^
| | | |
-------
===== Risoluzione problemi =====
{{:sviluppo:ris_problemi_jqgrid_01.png?nolink|}}
Si verifica se la somma delle colonne non supera la larghezza delle icone in basso a sinistra. E' possibile risolvere modificando la larghezza delle colonne o impostando il metadato //width// della tabella.
-------
-------
\\
| [[ tipi_di_elementi#Tipo_Elemento|Torna alla lista.]] || [[Lista Analitica|Vai alla Lista Analitica]] |
\\
{{counter}} visualizzazioni.