GWT Datagrid不显示数据,但包含数据

Akk*_*ekt 11 gwt datagrid tabpanel celltable

我正在尝试将a转换cellTable为a datagrid,因为我想稍后添加一个搜索处理程序,因此我需要修复列标题.目前我扩展celltable/ datagridclass并将小部件放入a simplelayoutpanel并将其添加到我的tabpanel.

如果我使用celltable,一切正常,数据显示.如果我将类的类型更改为datagrid,则数据有时会显示(列名始终存在).添加到我使用的表setRowData或a dataProvider.如果我设置断点以延迟加载表内容,则表有时会包含数据.如果我稍后调用表的重绘方法,该表将显示正确的信息.但该表应自动加载内容.在我的项目的其他"位置",我也使用了数据网格并且它可以工作Dialogboxes.

我认为项目的绘制肯定存在错误,因为如果我调用.getRowCount表或弃用.getDisplayedItems,它会返回表中应该有正确数量的项目.此外,如果我向表中添加选择模型并选择项目,则该项目包含有效数据.

Abh*_*aja 8

DataGrid需要放在LayoutPanel或Panel中,以实现ProvideResize接口的可见性.ScrollPanel实现了该接口.

此外,从DataGrid到根元素/面板的这一系列LayoutPanel必须不间断.在您的面板层次结构中似乎就是这种情况.

最后,您必须使用RootLayoutPanel而不是RootPanel来添加LayoutPanel.那么你是否确保将SimpleLayoutPanel添加到RootLayoutPanel?

另请参阅此 GWT:DataGrid - 设置高度100%无法正确呈现


Luc*_* A. 8

这是我的2美分.

当在正确形成的"LayoutPanel或Panel实现ProvideResize"树结构之外渲染DataGrid时,我发现我总是需要记住以下内容:

  1. 正如这个问题所解释的,高度DataGrid属性需要一个显式值,例如"123px".没有它,DataGrid不会显示其数据行(即使它们在DOM中).

  2. 如果将DataGrid放在未聚焦的 DecoratedTabPanel选项卡中,则需要在此类选项卡获得焦点时调用DataGrid.redraw().同样,如果没有这个,DataGrid不会显示其数据行(即使它们在DOM中).

我希望这有帮助.