extjs filter
时间: 2023-08-13 08:03:02 浏览: 82
ExtJS 提供了用于过滤数据的强大功能。你可以使用 Ext.util.Filter 类来创建和应用过滤器。过滤器可以应用于 ExtJS 的各种数据组件,如 Grid、Tree 等。
要使用过滤器,首先你需要创建一个 Ext.util.Filter 的实例,指定过滤的字段、操作符和值。例如,如果你要过滤一个 Grid 的数据,你可以这样创建一个过滤器:
```javascript
var filter = Ext.create('Ext.util.Filter', {
property: 'name', // 过滤的字段名
operator: 'like', // 操作符(如:'=', 'like', '>', '<' 等)
value: 'John' // 过滤的值
});
```
然后,你可以将这个过滤器应用到你的数据组件上,比如一个 Grid:
```javascript
var grid = Ext.create('Ext.grid.Panel', {
// 配置项...
store: myStore, // 绑定的数据源
columns: myColumns, // 列定义
viewConfig: {
plugins: {
ptype: 'gridviewdragdrop',
dragGroup: 'firstGridDDGroup',
dropGroup: 'secondGridDDGroup'
},
listeners: {
beforeitemcontextmenu: function(view, record, item, index, e) {
e.stopEvent(menu.showAt(e.getXY()));
return false;
},
itemdblclick: function(gridView, record) {
var rec = record.data;
var id = rec.id;
var name = rec.name;
var age = rec.age;
Ext.Msg.alert('双击', '您双击了 ' + name + ' 的记录');
}
}
},
features: [{
ftype: 'filters' // 使用 filters 特性
}]
});
```
通过将 `features` 配置项设置为 `[{"ftype":"filters"}]`,你就可以启用过滤功能。然后,你可以使用 Grid 的 `getPlugin()` 方法获取到 filters 插件,并调用 `addFilters()` 方法将过滤器添加到 filters 中:
```javascript
var filters = grid.getPlugin('gridfilters');
filters.addFilters(filter);
```
这样,过滤器就会应用到 Grid 的数据上,显示符合过滤条件的数据行。
这只是 ExtJS 过滤功能的基本用法,你还可以根据具体需求进行更复杂的过滤操作。详细的使用方法可以参考 ExtJS 的官方文档。