0

我正在使用 GXT 3 构建一个将显示“事件”的 GridView。

我想要做的是,当它呈现它时,我希望根据数据库中的布尔值检查一些复选框,而将其他复选框清空。

下面你有我的代码:

        CheckBoxSelectionModel<IncidentDto> isIncidentCM = new CheckBoxSelectionModel<IncidentDto>(incidentProperties.incident());
        allColumns.add(isIncidentCM.getColumn());
        ColumnModel<IncidentDto> columnModel = new ColumnModel<IncidentDto>(allColumns);

        final Grid<IncidentDto> grid = new Grid<IncidentDto>(store, columnModel);
        grid.setSelectionModel(isIncidentCM);
        add(grid);

IncidentProperties 值提供者:

IdentityValueProvider<IncidentDto> incident();
4

1 回答 1

1

我不确定您是否可以将选择值绑定到布尔属性,但您可以将侦听器添加到 Grid 以根据布尔条件更新复选框。

grid.addBeforeShowHandler(BeforeShowEvent event) {
  @Override
  public void onBeforeShow(BeforeShowEvent event) {
    List<IncidentDto> itemsToSelect = new ArrayList<IncidentDto>();
    for (IncidentDto incident : store.getAll()) {
      if (incident.getBooleanProperty()) { //whatever your property is called
        itemsToSelect.add(incident);
      }
    }
    isIncidentCM.setSelection(itemsToSelect);
  }
}

使用 BeforeShowEvent 可能还有其他含义,具体取决于您填充商店、渲染网格等的方式/时间,但假设您的商店已完全加载并且您的商店对象中可用的属性我相信这应该可以实现您的目标。

于 2013-01-11T16:18:36.397 回答