自定义表头过滤条件

框架默认的表头过滤功能是根据表格设定的query,去元数据中取得列属性相应的信息来实现的。如果表格取数是自定义的,没有query或者想修改框架的逻辑,也有相应的接口可以实现。

  1. 扩展表格的customFilterAttributes事件。

  2. 实现自定义表头过滤事件

    返回需要过滤的每一列的过滤配置信息,是个JSON数组。

    例如:

  3. 效果图:

说明:

表头过滤的列的属性一共分成4种

  1. string:字符串类型
  2. time:事件类型
  3. number:数字类型
  4. boolean:布尔类型
  5. enum:枚举类型,需要指定枚举数据源,不然没有选项。

框架默认实现(可供参考和调试):

前端:grid.wafbase.js

后端:com.kingdee.bos.webframework.component.datagrid.DataGridController

表头过滤时,过滤条件会合并到filterItem属性中

将这种json格式转化成sql字句的方法:

前端(转化完会有sql注入风险,建议后端处理):

waf.parseSql.transFilter(filterItems);

后端:

com.kingdee.bos.webframework.sql.SqlUtils.getFilterItems(String, String[], HttpServletRequest)

相关样例