GXT:按坐标在网格中查找单元格的值

时间:2014-11-17 10:00:11

标签: java gwt grid gxt

我有网格的单元格(行,列索引)的坐标。如何检索单元格的值?

我不想检索整行,只需要检索一个带有(x,y)坐标的单元格。

我正在使用gwt 2.6.1gxt 3.x

1 个答案:

答案 0 :(得分:1)

最简单的方法是首先获取行,然后从中获取单元格。 Grid<T> 不是电子表格 - 它不仅仅是一个单元格包,或行列,而是一组固定的列,描述了如何阅读每一行。

查找行(类型为T)非常简单 - 使用行索引,向ListStore<T>询问具有该索引的项目。

ListStore<MyRowData> store = ...
MyRowData row = store.get(rowIndex);

然后,我们需要与您想要的列匹配的ColumnConfig<T, ?>。这是事情变得有趣的地方 - ?是什么?您的特定用例可能意味着所有列都是相同的类型,但情况并非总是如此,因此网格不会假设它。让我们说在我们的情况下虽然我们知道索引4的列包含String值 - 然后我们可以将任何ColumnConfig<T, ?>转换为ColumnConfig<T, String>

Grid<MyRowData> grid = ...
ColumnModel<MyRowData> columnModel = grid.getColumnModel();
ColumnConfig<MyRowData, String> columnFour = columnModel.getColumn(columnIndex);

现在我们有了行,我们有了列 - 这些列的交集是你所追求的特定单元格。要读出该单元格的,我们将列中的ValueProvider(当您构建列时,将其作为参数提供),并使用它来读取值在该列中,对于行模型。

MyRowData row = store.get(rowIndex);
//...
ColumnConfig<MyRowData, String> columnFour = columnModel.getColumn(columnIndex);

String cellValue = columnFour.getValueProvider().getValue(row);