ColumnHideCommand makes the table columns

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

  • 视口层

  • 选择层

  • 行隐藏显示层

  • ColumnGroupExpandCollapseLayer

  • ColumnHideShowLayer

  • 数据层

当复选框选择更改时,我需要显示/隐藏特定列。为此,我使用 NatTable 组件提供的 #doCommand() 方法:

if(selection) {

   nattable.doCommand(new ColumnShowCommand(nattable, COLUMN_INDEX));

} else {

   nattable.doCommand(new ColumnHideCommand(nattable, COLUMN_INDEX+1));

}

一切正常,除了选择表中的所有项目并执行 ColumnHideCommand 的情况。在这种特定情况下,整个表格内容都会消失。如果表中没有选择,或者没有选择所有元素,那么一切正常。


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


斯蒂芬大帝
浏览 103回答 1
1回答

当年话下

这是SelectionLayer支持基于列选择的多列隐藏操作的功能。AColumnHideCommand被消耗,而是MultiColumnHideCommand基于完全选择的列创建和执行。负责的代码位于SelectionLayer#handleColumnHideCommand(ColumnHideCommand)。该方法受到保护,因此如果您不需要该功能,因为您仅支持以编程方式隐藏/显示列而不是通过用户执行的 UI,您可以覆盖该方法以简单地执行 asuper.doCommand(command);而无需检查选择。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java