我有两个表,当我在第二个表中选择行时,我想在第一个表中选择适当的行。我已完成以下操作
for (DataRow<Cell> row : formDataTable.getVisibleItems()) {
if (row.getIndex().equals(rowIndex.intValue())) {
formDataTable.getSelectionModel().setSelected(row, true);
}
}
但我不认为它是视觉选择的行。我看到第二张表中的选定行,但我应该先看到它。
答案 0 :(得分:1)
通过setSelected完成。
selectionModel
。setSelected
dataGrid
方法
醇>
如果您希望有机会在其他网页上选择行,则应使用ProvidesKey
并手动设置必要页面
我的代码
// variables
@UiField
DataGrid<DataRow<Cell>> formDataTable;
public static final ProvidesKey<DataRow<Cell>> KEY_PROVIDER = new ProvidesKey<DataRow<Cell>>() {
@Override
public Object getKey(DataRow<Cell> item) {
return item.getIndex();
}
};
private SingleSelectionModel<DataRow<Cell>> selectionModel;
// this code must be within constructor
selectionModel = new SingleSelectionModel<DataRow<Cell>>(KEY_PROVIDER);
formDataTable.setSelectionModel(selectionModel);
// method to select should view as
@Override
public void setFocus(final Long rowIndex) {
DataRow<Cell> row = new DataRow<Cell>();
row.setIndex(rowIndex.intValue());
selectionModel.setSelected(row, true);
// go to essential page
Long page = rowIndex / pager.getPageSize() + (rowIndex % pager.getPageSize() > 0 ? 1:0);
pager.setPage(page.intValue() - 1);
}