2011-10-24 12 views
8

Estoy tratando de insertar una cuadrícula de datos gwt en mi aplicación. Si configuro una altura estática (500px) todo funciona bien. Pero quiero hacer que la cuadrícula de datos se ajuste automáticamente al tamaño de la pantalla. Con la altura del 100% me sale una pantalla en blanco. También intenté poner la cuadrícula de datos en resizeLayoutPanel con los mismos resultados.GWT DataGrid altura automática

algún consejo?

Respuesta

19

Todos los widgets de RequiresResize se debe dar un tamaño explícito, o añadirse a ProvidesResize widgets (hasta un un widget o RootLayoutPanelProvidesResize con un tamaño explícito; la única excepción es que no ResizeLayoutPanel implementar ProvidesResize porque no se pudo honrar el contrato por sus widgets de encabezado y pie de página, pero definitivamente lo honra por el widget central).

Así que la pregunta es: ¿dónde agregaste tu DataGrid y/o ResizeLayoutPanel?

+0

El punto clave fue ... agregarse a los widgets ProvidesResize (hasta un RootLayoutPanel). El panel principal era HTMLPanel y no es un widget ProvidesResize. – Jose

+3

Debería "aceptar" la respuesta en lugar de cambiar el título de la pregunta a "resuelto". Consulte http://stackoverflow.com/faq#howtoask –

3

Thomas Broyer es correcto. Sin embargo, encontré algo interesante sobre DataGrid (no ocurre en CellTable). Si está utilizando un DeckPanel y está creando el DataGrid en un Panel oculto de este DeckPanel, entonces los datos del DataGrid no estarán visibles si muestra el panel del DataGrid. Encontré solo una solución alternativa: llamar a addDataDisplay de su DataProvider "después" de que el panel se hiciera visible.

+0

En la mayoría de los navegadores, la altura y el ancho de los div ocultos (es decir, la visualización con estilo: ninguno) no está disponible para diseñar el resto de la página. Hay trucos para solucionarlo, así que supongo que CellTable lo implementó, mientras que DataGrid no lo hizo (o no pudo porque es un poco más complejo) –

+0

Confirmó que esto también afecta a un TabLayoutPanel donde DataGrid no está en la pestaña predeterminada. – hiddenwaffle

Cuestiones relacionadas