我现在在GWT中有一个非常基本的CellTable,并使用here所示的大部分代码。
但是,当我切换一个复选框时,每一行都会突出显示。
预览:gfycat
到目前为止,我确实尝试过:
Multi- / SingleSelectionMode :(我只想获得一行,所以我更喜欢SingleSelectionMode)
CheckBoxCell(true,true):->这正是我希望CellTable看起来的样子,但是使用这些参数,我无法使用“ getSelectedObject()”获得对象。参数的其他变体(false,false / true,false)似乎也不起作用
CellTable<Article> ArticleCt = new CellTable<Article>(KEY_PROVIDER);
ListHandler<Article> sortHandler = new ListHandler<Article>(Articles);
ArticleCt.addColumnSortHandler(sortHandler);
final MultiSelectionModel<Article> selectionModel1 = new MultiSelectionModel<Article>(KEY_PROVIDER);
ArticleCt.setSelectionModel(selectionModel1, DefaultSelectionEventManager.<Article> createCheckboxManager());
Column<Article, Boolean> checkColumn = new Column<Article, Boolean>(
new CheckboxCell(true, false)) {
public Boolean getValue(Article object) {
return selectionModel1.isSelected(object);
}
};
我只希望选中已选中复选框的行,这样我就可以使用selectionMode.getSelectedObject()
或selectionMode.getSelectedSet()
来获取特定的行/对象。
但是每一行都会突出显示。
答案 0 :(得分:1)
您的密钥提供者KEY_PROVIDER
必须在每行中提供唯一且一致的密钥。例如,每行可能都有一个“ ID”字段。
如果有多个行共享一个密钥,那么选择模型似乎与选择两者相同。如果某行的密钥不一致,则选择该行后,由于其密钥已更改,因此以后无法查询。