我有一个 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");如何在不删除表格中的下拉菜单的情况下隐藏行号?
1 回答
翻阅古今
TA贡献1780条经验 获得超5个赞
不确定“隐藏行号”是什么意思。隐藏意味着您想要动态地执行此操作。您展示的方法不是动态的。
如果您的意思是要提供两种不同的组合,一种带有行号,另一种没有,则该方法是正确的。您使用不同的组合。我不明白的是为什么你用不同的层设置了两次列标题。
下一个问题,“不显示下拉列表”是什么意思?你没有看到小三角形还是组合框没有打开?我猜你的意思是组合框不会在点击时打开。我想原因是您忘记在新创建的CompositeLayer
. 在GridLayer
使用默认配置创建。在CompositeLayer
你不设置任何配置。所以实际上即使打印、导出和交替行颜色也不起作用,因为它们根本没有配置。
您需要注册DefaultEditConfiguration
并DefaultEditBindings
上CompositeLayer
。这在我们的NatTable 文档|编辑中进行了解释。而且我确信我们还有一些示例涵盖了在非网格合成中进行编辑。
添加回答
举报
0/150
提交
取消