隐藏行号时,单元格下拉菜单不起作用

我有一个 Nattable 可以隐藏他的行号。现在,当我隐藏行号时,它不会在单元格中显示下拉列表。


我使用此代码隐藏行号:


if (showRowNumbers) {

      compositeGridLayer = new GridLayer(bodyLayer, finalHeaderRow, rowHeaderLayer, cornerLayer);

    } else {

      compositeGridLayer = new CompositeLayer(1, 2);

      compositeGridLayer.setChildLayer(GridRegion.COLUMN_HEADER, columnHeaderLayer, 0, 0);

      compositeGridLayer.setChildLayer(GridRegion.BODY, bodyLayer, 0, 1);

      compositeGridLayer.setChildLayer(GridRegion.COLUMN_HEADER, finalHeaderRow, 0, 0);

    }

为了将下拉列表添加到单元格中,我们使用以下方法注册它:


ComboBoxCellEditor comboBoxCellEditor = new ComboBoxCellEditor(phases, -1);

comboBoxCellEditor.setMultiselect(false);

comboBoxCellEditor.setUseCheckbox(false);

comboBoxCellEditor.setFreeEdit(false);


configRegistry.registerConfigAttribute(CellConfigAttributes.CELL_PAINTER, new ComboBoxPainter(),

  DisplayMode.NORMAL, "phaseDropDown");


comboBoxCellEditor.setIconImage(GUIHelper.getImage("plus"));

configRegistry.registerConfigAttribute(EditConfigAttributes.CELL_EDITOR, comboBoxCellEditor, DisplayMode.EDIT,

  "phaseDropDown");


configRegistry.registerConfigAttribute(CellConfigAttributes.DISPLAY_CONVERTER, new DefaultDisplayConverter() {


  @Override

  public Object canonicalToDisplayValue(Object canonicalValue) {


    return super.canonicalToDisplayValue(canonicalValue);

  }

}, DisplayMode.NORMAL, "phaseDropDown");

如何在不删除表格中的下拉菜单的情况下隐藏行号?


撒科打诨
浏览 168回答 1
1回答

翻阅古今

不确定“隐藏行号”是什么意思。隐藏意味着您想要动态地执行此操作。您展示的方法不是动态的。如果您的意思是要提供两种不同的组合,一种带有行号,另一种没有,则该方法是正确的。您使用不同的组合。我不明白的是为什么你用不同的层设置了两次列标题。下一个问题,“不显示下拉列表”是什么意思?你没有看到小三角形还是组合框没有打开?我猜你的意思是组合框不会在点击时打开。我想原因是您忘记在新创建的CompositeLayer. 在GridLayer使用默认配置创建。在CompositeLayer你不设置任何配置。所以实际上即使打印、导出和交替行颜色也不起作用,因为它们根本没有配置。您需要注册DefaultEditConfiguration并DefaultEditBindings上CompositeLayer。这在我们的NatTable 文档|编辑中进行了解释。而且我确信我们还有一些示例涵盖了在非网格合成中进行编辑。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java