当所有 table 元素被选中时,ColumnHideCommand 使 table 列在 NatTable 中消失

ColumnHideCommand makes the table columns to disappear in NatTable, when all table elements are selected

我有一个包含以下层的 NatTable 组件:

当复选框选择发生变化时,我需要 show/hide 特定的列。为此,我使用 NatTable 组件提供的 #doCommand() 方法:

if(selection) {
   nattable.doCommand(new ColumnShowCommand(nattable, COLUMN_INDEX));
} else {
   nattable.doCommand(new ColumnHideCommand(nattable, COLUMN_INDEX+1));
}

一切正常,除了选择 table 中的所有项目并执行 ColumnHideCommand 的情况。在这个特定场景中,整个 table 内容消失了 (Screenshot)。如果 table 中没有选择,或者没有选择所有元素,那么一切正常。

如果您知道那里发生了什么或者您以前是否遇到过此类问题,请告诉我。我对 NatTables 的经验非常有限,所以如果您需要任何其他信息,请告诉我。谢谢!

这是SelectionLayer的一个特性,支持基于列选择的多列隐藏操作。 ColumnHideCommand 被消耗,而是根据完全选择的列创建和执行 MultiColumnHideCommand。负责的代码位于SelectionLayer#handleColumnHideCommand(ColumnHideCommand)。该方法受到保护,因此如果您不需要该功能,因为您仅以编程方式支持列 hide/show 而不是通过用户执行的 UI,您可以覆盖该方法以简单地执行 [=14] =] 不检查选择。