【问题标题】:GWT CellTable: Selecting one checkbox selects every checkbox/row in the tableGWT CellTable:选择一个复选框会选择表格中的每个复选框/行
【发布时间】:2019-06-14 15:43:28
【问题描述】:

我现在在 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() 获取特定的行/对象。

但是每一行都会突出显示。

【问题讨论】:

  • 您的密钥提供程序中有什么?如果键不是唯一的,则选择将无法区分行。可能还想将列索引传递给DefaultSelectionEventManager.createCheckboxManager()
  • 非常感谢!添加一个简单的增量键解决了这个问题。即使在没有 CheckboxManager 索引的情况下使用它也可以工作,但我还是添加了它。

标签: javascript java gwt


【解决方案1】:

上述问题中的密钥提供者KEY_PROVIDER 必须为每行提供唯一且一致的密钥。例如,每一行可能有一个“ID”字段。

如果多行共享一个键,则选择一个似乎与选择两者相同。 If a row's key is not consistent, then when a row is selected, it can't be queried later since its key changed.

【讨论】:

    猜你喜欢
    • 2015-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-02
    • 2023-04-02
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多