【发布时间】:2016-06-13 13:03:49
【问题描述】:
我正在使用带有 MultiSelectionModel 的 GWT DataGrid。
网格项目的选择应该通过
a) 带有 CheckboxCell 的 CheckboxColumn
另外同时通过
b) 标准线模式选择模型(通过点击线的其余部分)。
使用 CheckboxColumn 应该允许用户多选不同的条目。但是,当单击数据网格线上的其他位置时,应该执行单行选择策略,这意味着,如果在使用复选框之前完成了多项选择,则应重置此选择,并且只有单击的行应该之后再选择。
这就是我所拥有的。有人知道如何同时启用 CheckBox-Mode 和 line-selection-mode 吗?
public class JobDataGrid extends DataGrid<Job>
{
private MultiSelectionModel<Job> selectionModel;
private Column<Job, Boolean> checkboxColumn;
private TextColumn<Job> idColumn;
private TextColumn<Job> titleColumn;
private TextColumn<Job> timestampColumn;
private TexTColumn<Job> ...
public JobDataGrid ()
{
super ();
checkboxColumn = new Column<Job, Boolean> (new CheckboxCell (true, false)) {
@Override
public Boolean getValue (Job job)
{
// Get the value from the selection model.
return selectionModel.isSelected (job);
}
};
checkboxColumn.setFieldUpdater (new FieldUpdater<Job, Boolean> () {
public void update (int index, Job job, Boolean value)
{
// Called when the user clicks on a checkbox.
selectionModel.setSelected (job, value);
}
});
// [...]
// [...]
// [...]
selectionModel = new MultiSelectionModel<Job> ();
setSelectionModel (selectionModel);
// setKeyboardSelectionPolicy (KeyboardSelectionPolicy.DISABLED);
// [...]
// [...]
// [...]
}
}
我已经尝试了所有 4 种变体
new CheckboxCell (false, false);
new CheckboxCell (true, false);
new CheckboxCell (false, true);
new CheckboxCell (true, true);
但他们都没有出现我需要的东西。而且我也玩过
setSelectionModel (selectionModel, DefaultSelectionEventManager.<Job> createCheckboxManager ());
也许
createCustomManager(DefaultSelectionEventManager.EventTranslator<T> translator)
会有帮助吗?
谢谢 托马斯
【问题讨论】:
标签: gwt