2011-10-24 3 views
8

Sto cercando di inserire un datagrid gwt nella mia applicazione. Se imposto un'altezza statica (500 px), tutto funziona correttamente. Ma voglio che il dataGrid si aggiusti automaticamente alle dimensioni dello schermo. Con altezza 100% ottengo uno schermo vuoto. ho anche provato a mettere il datagrid in un resizeLayoutPanel con gli stessi risultati.GWT DataGrid altezza automatica

qualche consiglio?

risposta

19

Tutti RequiresResize i widget dovrebbe essere data una dimensione esplicita, o essere aggiunto al ProvidesResize widget (fino ad un un widget RootLayoutPanel o ProvidesResize con una dimensione esplicita, l'unica eccezione è ResizeLayoutPanel che non implementa ProvidesResize perché non poteva onorare il contratto per i suoi widget di intestazione e piè di pagina, ma sicuramente lo onora per il widget centrale).

Quindi la domanda è: dove hai aggiunto il tuo DataGrid e/o ResizeLayoutPanel?

+0

Il punto chiave era ... essere aggiunto ai widget ProvidesResize (fino a un RootLayoutPanel). Il pannello principale era HTMLPanel e non è un widget ProvidesResize. – Jose

+3

Dovresti "accettare" la risposta invece di cambiare il titolo della domanda in "risolto". Vedi http://stackoverflow.com/faq#howtoask –

3

Thomas Broyer è corretto. Tuttavia ho trovato qualcosa di interessante riguardo il DataGrid (non succede in CellTable). Se si utilizza un DeckPanel e se si sta creando il DataGrid su un pannello nascosto di questo DeckPanel, i dati di DataGrid non saranno visibili se si visualizza il pannello di DataGrid. Ho trovato solo una soluzione: chiama addDataDisplay del tuo DataProvider "dopo" il pannello è stato reso visibile.

+0

Nella maggior parte dei browser, l'altezza e la larghezza dei div nascosti (cioè la visualizzazione in stile: nessuno) non è disponibile per disporre il resto della pagina. Ci sono trucchi per aggirare il problema, quindi suppongo che CellTable l'abbia implementato, mentre DataGrid non lo ha (o non poteva perché è leggermente più complesso) –

+0

Confermato che ciò influisce anche su un TabLayoutPanel in cui il DataGrid non si trova nella scheda predefinita. – hiddenwaffle