如何解决如何在nattable中按列标题层分组实现文本换行
我想在标题标题中实现文本换行。我还在顶部列标题层添加了逐层分组 文本换行在以下配置中无法按标题区域分组工作。如何在这种情况下实现文本换行
// Column header layer
this.colGrpModel = new ColumnGroupModel();
this.colHeaderLayr =
new ColumnHeaderLayer(this.colHeaderDataLayr,this.bodyLayr,this.bodyLayr.getSelectionLayer());
this.colGrpHeaderLayer =
new ColumnGroupHeaderLayer(this.colHeaderLayr,this.bodyLayr.getSelectionLayer(),this.colGrpModel,false);
this.colGrpHeaderLayer.setCalculateHeight(true);
// Composite layer
CompositeLayer compositeGridLayer = new CompositeLayer(1,2);
//Group by header layer
this.groupByHeaderLayer = new GroupByHeaderLayer(groupByModel,this.paramFilterGridLayer,this.filterGridLayer.getColumnHeaderDataProvider());
compositeGridLayer.setChildLayer(GroupByHeaderLayer.GROUP_BY_REGION,this.groupByHeaderLayer,0);
compositeGridLayer.setChildLayer("Grid",this.filterGridLayer,1);
这是 groupBy 配置:
configRegstry.registerConfigAttribute(
GroupByConfigAttributes.GROUP_BY_CHILD_COUNT_PATTERN,"[{0}] - ({1})");
configRegstry.registerConfigAttribute(
GroupByConfigAttributes.GROUP_BY_HINT,"Drag columns here");
// To implement text wrapping in group by header region
configRegstry.registerConfigAttribute(
CellConfigAttributes.CELL_PAINTER,new TextPainter(true,true,2),displayMode.norMAL,GroupByHeaderLayer.GROUP_BY_REGION);
解决方法
简短回答:目前不支持。
长答案: 你误解了几件事。
- 文本换行意味着如果单元格中没有足够的空间,则会动态添加新行。由于
GroupByHeader
实际上是一个跨越整个宽度的单元格,因此单元格宽度永远不会超过以强制文本换行。 -
TextPainter
是一个ICellPainter
,因此它用于呈现单元格。 -
GroupByHeader
(虽然是跨区单元格)不使用默认单元格绘制器。它使用特殊的GroupByHeaderPainter
,因为它需要检查GroupByModel
并为每个条目呈现片段。该画家目前不支持换行。并且它不会在内部使用其他ICellPainter
。
这意味着,如果您需要在 GroupByHeader
中支持换行,则需要扩展 GroupByHeaderPainter
。作为一个开源项目,我们喜欢贡献。 :)
如果您想在 GroupByHeader
中添加某种文本换行,您需要以某种方式指定何时换行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。