.. _widgetpedia/grids/grid: Grid Widgets ============ .. toctree:: :maxdepth: 1 :titlesonly: quickgrid baggrid evaluationGrid Le griglie (``grid``) sono un elemento molto importante per la **presentazione in formato tabellare di collezione di dati con campi omogenei**. Le griglie possono essere chiamate in molti modi diversi e sono spesso incorporate in :ref:`Components` per mostrare dei dati di varia origine. Le griglie sono caratterizzate principalmente da due elementi : - Lo ``store`` dei dati - La struttura delle colonne (la ``struct``) Una griglia utilizza come store una `Bag `_ di dati e questa Bag può essere strutturata differentemente a seconda del tipo di uso. La Bag può infatti essere rappresentata come Bag **di attributi** o **di valori**, a seconda di come viene definito il parametro ``datamode`` (``attr`` o ``Bag``): - se uguale a *Bag*, allora nello *store* troveremo una sola riga, con la Bag, che poi all'interno contiene tutte le singole righe - se invece uguale ad *attr* nello *store* troveremo direttamente tutte le singole righe con i loro valori. .. hint:: Il `TableHandler `_, ovvero il component "griglia" principe di Genropy, lavora sempre in *datamode=attr*. Si segnala che il datamode *attr* non permette di default l'editing dello store. Infatti, nell'`inlineTableHandler `_ è necessario utilizzare l'attributo ``edit=True`` per apportrare modifiche ai record direttamente nella griglia, e questo fa sì che vengano recuperati anche i valori, che altrimenti non sarebbero presenti. Nel momento in cui facciamo doppio clic per modificare un valore, la riga viene "copiata" nello store, e compariranno anche i valori. Il valore "originale" sarà sempre disponibile tra gli attributi come ``_loadedValue``, e al salvataggio le modifiche verranno implementate. .. Ho appuntato che questo è dovuto al fatto che th lavora in store sempre *statico*, ma è da approfondire il collegamento tra queste due cose I vari tipi di griglie possono essere classificati a seconda della modalità di uso: - Griglie su tabella di database per selezioni molto numerose (*Virtual Grid*) - Griglie su tabella di database per selezioni di dimensioni contenute (*Static Grid*) - Griglie che hanno come store una serie di documenti nel filesystem - Griglie che operano su una Bag I primi due tipi fanno capo al vasto mondo dei `TableHandler `_ e alla distinzione tra `Store statico o store virtuale `_, per i quali rimandiamo alla Documentazione dedicata. Vediamo invece in questa sede nel dettaglio l'ultimo tipo, le griglie che operano su una Bag: la :ref:`bagGrid` e la :ref:`quickGrid` . .. sectionauthor:: Davide Paci