首页 新闻 会员 周边

easyui datagrid-filter bug

1
悬赏园豆:50 [已解决问题] 解决于 2015-08-26 09:52

发现一个问题,按照官方的文档,自己写了一个,发现只有数据类型为文本的,有过滤效果,数值类型的,就没有反应,而且,一旦在数值类型的列上面过滤,然后所有的过滤就都失效了。后来就只能这样写:

    $(function () {
            var dg = $('#datagrid').datagrid({
                filterBtnIconCls: 'icon-filter'
            });
            dg.datagrid('enableFilter', [{
                field: 'AllPoint',
                type: 'numberbox',
                options: {
                    precision: 1, onChange: function (value) {
                        if (value == "") {
                            dg.datagrid('removeFilterRule');
                        } else {
                            dg.datagrid('addFilterRule', { 
                                field: 'AllPoint',
                                op: 'equal',
                                value: value
                            });
                         
                        }
                        dg.datagrid('doFilter');
                    }
                }
           
            }, {
                field: 'CommonPoint',
                type: 'numberbox',
                options: {
                    onChange: function (value) {
                        dg.datagrid('removeFilterRule', 'CommonPoint');
                        dg.datagrid('doFilter');
                    }
                }
            }
            ]);
        });

它的原理是 如果 某个数值列 的过滤器为 空字符串,那么 去掉过滤器,否则 就过滤。

问题是,我有很多个数值类型的列,每一个都要这样做特殊处理的话,代码岂不是很长。。。

pengbg的主页 pengbg | 初学一级 | 园豆:13
提问于:2015-08-25 19:07
< >
分享
最佳答案
0

可以在后面绑定的时候写在format里面

收获园豆:50
稳稳的河 | 老鸟四级 |园豆:4216 | 2015-08-26 09:13
其他回答(1)
0

数值类型的toLowerCase会报错 在datagrid-filter.js中调整一下就好了

十一月惊蛰 | 园豆:202 (菜鸟二级) | 2018-03-01 20:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册