当所有 table 元素被选中时,ColumnHideCommand 使 table 列在 NatTable 中消失
ColumnHideCommand makes the table columns to disappear in NatTable, when all table elements are selected
我有一个包含以下层的 NatTable 组件:
- 视口图层
- 选择图层
- RowHideShowLayer
- ColumnGroupExpandCollapseLayer
- ColumnHideShowLayer
- 数据层
当复选框选择发生变化时,我需要 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] =] 不检查选择。
我有一个包含以下层的 NatTable 组件:
- 视口图层
- 选择图层
- RowHideShowLayer
- ColumnGroupExpandCollapseLayer
- ColumnHideShowLayer
- 数据层
当复选框选择发生变化时,我需要 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] =] 不检查选择。