我们正在使用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
我尝试了一些方法,但它们在可排序的列上运行不佳。有没有标准的方法来做到这一点?
答案 0 :(得分:2)
您可以覆盖用于Town列的单元格的getCellStyleNames
。此方法为您提供了Context,您可以使用它来查看此单元格在列中的位置(context.getIndex()
)。使用此信息,您可以将此单元格中的值与其上方单元格中的值进行比较(如果有)。如果它是相同的,则返回一个样式以隐藏此单元格中的值。
请注意,如果在为单元格覆盖getValue
时简单地返回空值,它将无法工作,因为即使它是相同的,它也会使下一个单元格显示其值。当然,您可以通过查找直到找到非空单元格来解决此问题,但重写getCellStyleNames
并简单地隐藏重复值看起来就像一个更简单的解决方案。
因为这是您单元格中的一种方法,所以它应该在更新,排序列等方面表现良好。