GWT在DataGrid中隐藏分组数据

时间:2016-01-26 12:11:19

标签: java gwt

我们正在使用GWT。我有一个DataGrid,在左侧的列中有许多重复值。我想隐瞒这些。例如:

我有:

Town        | Address             | Color
------------------------------------------
Springfield | Springfield Heights | Blue
Springfield | Bum town            | Red
Springfield | Little Italy        | Blue
Shelbyville | Manhattan Square    | Green
Shelbyville | Chinatown           | Red

我想:

Town        | Address             | Color
------------------------------------------
Springfield | Springfield Heights | Blue
            | Bum town            | Red
            | Little Italy        | Blue
Shelbyville | Manhattan Square    | Green
            | Chinatown           | Red

我尝试了一些方法,但它们在可排序的列上运行不佳。有没有标准的方法来做到这一点?

1 个答案:

答案 0 :(得分:2)

您可以覆盖用于Town列的单元格的getCellStyleNames。此方法为您提供了Context,您可以使用它来查看此单元格在列中的位置(context.getIndex())。使用此信息,您可以将此单元格中的值与其上方单元格中的值进行比较(如果有)。如果它是相同的,则返回一个样式以隐藏此单元格中的值。

请注意,如果在为单元格覆盖getValue时简单地返回空值,它将无法工作,因为即使它是相同的,它也会使下一个单元格显示其值。当然,您可以通过查找直到找到非空单元格来解决此问题,但重写getCellStyleNames并简单地隐藏重复值看起来就像一个更简单的解决方案。

因为这是您单元格中的一种方法,所以它应该在更新,排序列等方面表现良好。