对于已经搜索出的结果,使用eXtremeTable过滤功能进行再次筛选时,使用中文进行搜索会出现??,并且返回的结果集是空的.
我大概的看了一下源代码,发现默认的实现是通过org.extremecomponents.table.callback.FilterPredicate完成其过滤功能的,使用isSearchMatch方法进行匹配,在evaluate方法中,取得了FilterSet,这是存放所有过滤条件的对象,里面的Filter[] 都是ISO8859-1的编码,通过转换编码(转换为GB2312),比如我就是在org.extremecomponents.table.limit.Filter类的构造函数中加入了转换代码的.
这样就可以正常的使用过滤功能.不过,如果你过滤的结果超过一页的话,就需要点下一页来翻页,翻页的结果同样是中文的问题,又是??,出现这一情况的原因
是在页面点search进行过滤的以后,在{TABLEID}_toolbar这个表单中会加入刚才的过滤条件,而这个过滤条件本身就是??,所以我们翻
页当然不成功,现在就是如果可以知道在段设置表单的代码在哪里,就可以彻底解决过滤的编码问题了
我时间也不多,慢慢找了,哪位朋友知道的,请告诉我,谢谢! |