SmartGWT13公式字段过滤切换时出现异常点问题咨询
问题描述
- 运行环境:基于BuiltInDs项目,JDK 1.8、SmartGWT Eval v13.0p_2023-08-16
- 操作场景:为公式字段调用
setCanFilter(true)开启过滤支持 - 异常现象:切换过滤字段时,公式字段对应的筛选框内会出现一个无意义的点符号
(注:有对应的行为演示视频及字段添加代码截图佐证该问题)
可行解决建议
清空过滤编辑器的初始值
公式字段的过滤编辑器可能被默认赋予了空占位符,切换时被渲染为点符号。可以显式配置过滤编辑器的属性,强制初始值为空:formulaField.setFilterEditorProperties(new TextItem() {{ setDefaultValue(null); setEmptyValue(null); }});自定义公式字段类修复渲染逻辑
针对SmartGWT该版本的渲染bug,可通过继承FormulaField并重写过滤编辑器创建方法,确保控件初始化时无多余内容:public class FixedFormulaField extends FormulaField { @Override public FormItem createFilterEditor() { FormItem editor = super.createFilterEditor(); if (editor instanceof TextItem) { ((TextItem) editor).setValue(null); } return editor; } }排查格式化器影响
若公式字段设置了自定义CellFormatter,检查是否在过滤场景下错误输出了点符号。临时移除格式化器测试,或调整逻辑确保空值时输出空字符串:formulaField.setCellFormatter(new CellFormatter() { @Override public String format(Object value, ListGridRecord record, int rowNum, int colNum) { if (value == null || value.toString().isEmpty()) { return ""; } // 原有格式化逻辑 return super.format(value, record, rowNum, colNum); } });尝试升级SmartGWT版本
该问题大概率是特定版本的已知bug,建议查阅SmartGWT官方更新日志,升级到较新的稳定版本(如15.x系列),确认是否已修复公式字段过滤的渲染异常。
内容的提问来源于stack exchange,提问作者Norida Olivera
相关产品推荐
相关产品推荐

