发现一个问题,按照官方的文档,自己写了一个,发现只有数据类型为文本的,有过滤效果,数值类型的,就没有反应,而且,一旦在数值类型的列上面过滤,然后所有的过滤就都失效了。后来就只能这样写:
$(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');
}
}
}
]);
});
它的原理是 如果 某个数值列 的过滤器为 空字符串,那么 去掉过滤器,否则 就过滤。
问题是,我有很多个数值类型的列,每一个都要这样做特殊处理的话,代码岂不是很长。。。
可以在后面绑定的时候写在format里面
数值类型的toLowerCase会报错 在datagrid-filter.js中调整一下就好了