Sottogriglia (subgrid)

Con la funzionalità di “sottogriglia” si intende la possibilità, all'interno di una griglia, di espandere le righe della griglia stessa ed aggiungere a loro interno dell'html od un'ulteriore griglia.

Attivazione (da Generator)

Per attivare la possibilità di espandere le righe di una griglia, il seguente parametro va aggiunto ai metadati:

Chiave	Default	Valori
subgrid	false	true, false

Per aggiungere una sottogriglia all'interno delle righe espanse è sufficiente aggiungere, all'interno della griglia, la sottogriglia che si vuole avere (allo stesso livello dei th ed i td), senza nessun specifico parametro.

Eventi

Una griglia col parametro “subgrid” abilitato avrà la possibilità di generare due nuovi eventi: subGridRowExpanded e subGridRowCollapsed, scatenati rispettivamente all'espandere ed al collassare di una riga.
Il primo porta con se anche un dato esclusivo, subgridDivId, spiegato nel prossimo paragrafo.

Dati

I seguenti parametri saranno disponibili nel $_POST delle chiamate effettuate in una griglia con paramtro “subgrid” e sottogriglie.

Parametro	Descrizione	Nota
subgridDivId	Indica l'ID dello spazio creato al di sotto della riga espansa. Utilizzato in coppia con Out::html per generare dell'HTML relativo alla riga espansa.	Solo con subGridRowExpanded
subgridId	L'ID reale della griglia oggetto dell'evento, da utilizzare per il TableView e per tutte le funzioni che interagiscono direttamente con la griglia.
childId	L'ID generico (come da disegno) dell'eventuale sottogriglia presente nella riga oggetto dell'evento. Assente se la riga è collassata o non ci sono subgrid.
subgridChildId	L'ID reale dell'eventuale sottogriglia, come spiegato per childId.
subgridData	Un array contenente il percorso di griglie e rowid che puntano alla riga oggetto dell'evento.	Spiegato nel successivo paragrafo

Helper

Per la gestione di array utilizzanti le subgrid sono state create delle funzioni, all'interno della classe TableView, per facilitare l'inserimento, il recupero e la cancellazione dei dati nei sotto-livelli.
A questo scopo itaEngine ci ritorna la variabile subgridData, che contiene tutte le informazioni di cui hanno bisogno le seguenti funzioni.

TableView::addSubgridData

Aggiunge un sotto-livello in un dato array.

function TableView::addSubgridData($subgridInfo, $arrayData, $subgridId, $subgridData)
subgridInfo	$_POST['subgridData']
arrayData	Array da elaborare.
subgridId	ID della sotto-griglia che si sta aggiungendo.
subgriData	Dati della sotto-griglia che si sta aggiungendo.

TableView::getSubgridData

Ritorna i dati della griglia finale in $subgridInfo, o della griglia specificata con il parametro $subgridId.

function TableView::getSubgridData($subgridInfo, $arrayData, $subgridId = false)
subgridInfo	$_POST['subgridData']
arrayData	Array da elaborare.
subgridId	(opzionale) ID della griglia di cui si vogliono i dati.

TableView::getSubgridRecord

Ritorna il record del rowid finale in $subgridInfo, o della griglia specificata con il parametro $subgridId (il rowid viene sempre preso in $subgridInfo).

function TableView::getSubgridRecord($subgridInfo, $arrayData, $subgridId = false)
subgridInfo	$_POST['subgridData']
arrayData	Array da elaborare.
subgridId	(opzionale) ID della griglia di cui si vuole il record.

TableView::deleteSubgridData

Cancella i dati della sotto-griglia indicata.

function TableView::deleteSubgridData($subgridInfo, $arrayData, $subgridId)
subgridInfo	$_POST['subgridData']
arrayData	Array da elaborare.
subgridId	ID della sotto-griglia che si vuole cancellare.