我有一个网格,里面有很多记录。所以我想在每个列标题中添加过滤器以轻松过滤所需的数据。我已经看到了 sencha 文档中给出的示例。但是如何在 Extjs 4.2 版本中实现它。如何在其中使用 UX 类?有没有可用的插件?
我非常感谢你。
请帮我。
阿南德
我有一个网格,里面有很多记录。所以我想在每个列标题中添加过滤器以轻松过滤所需的数据。我已经看到了 sencha 文档中给出的示例。但是如何在 Extjs 4.2 版本中实现它。如何在其中使用 UX 类?有没有可用的插件?
我非常感谢你。
请帮我。
阿南德
这是一个例子:
Ext.define('Webdesktop.view.admin.List', {
extend: 'Ext.grid.Panel',
alias: 'widget.admin_casoslist',
initComponent: function() {
var me = this,
filters = {
ftype: 'filters',
encode: false,
local: true
};
Ext.apply(me, {
title: 'gridTitle',
store: List_CasSos_Store,
filterable: true,
features: [filters],
closable: true, // fixme: need to set here, because has no effect in tabpanel defaults configuration
autoScroll: true,
columns: {
items:[
{
text: 'header1',
filter: {
type: 'string'
},
flex: 1,
dataIndex: 'relation_patron_paraine'
},{
text:'header2',
filter: {
type: 'list',
options: ['case4', 'case3', 'case2', 'case1']
},
hidden:true,
flex: 1,
dataIndex: 'etatsante'
},{
text:'header3',
filter: {
type: 'numeric'
},
hidden:true,
flex: 1,
dataIndex: 'revenumnsuel'
}
],
defaults : {
align: 'center'
}
}
});
me.callParent();
}
在控制器中:
uses: [
'Webdesktop.view.admin.List',
...
'Ext.ux.grid.FiltersFeature'
]
您需要将此添加到您的网格配置中:
plugins: [{
ptype: 'gridfilters'
}],
然后在每一列中:
filter: {type: 'string', dataIndex: 'passengerFullName'},
请注意,过滤器取决于存储是远程过滤器还是本地过滤器。
请参阅此处了解更多信息:http ://docs.sencha.com/extjs/6.0.2-classic/Ext.grid.filters.Filters.html
要在标题中使用过滤器,grid
您需要声明过滤器数组,然后将范围赋予网格。然后写
this.filters = new Ext.ux.grid.GridFilters({
filters:this.filter
}) ;
为此提供一个插件
this.plugins = [this.filters];
在哪里添加列写
gridEl.filter{
type: 'list',
dataIndex: "DATAINDEX",
local : local,
dataForFilter : data
};
一种解决方案是捕获“列单击”列,获取要过滤的参数,然后在函数中将此过滤器放在网格存储上。
列示例
{
header : "email",
dataIndex : 'email',
listeners : {
click: {
element: 'el', //bind to the underlying el property on the panel
fn: function(){
storeGrid.filter("email", /\.com$/); // email
storeGrid.sort('myField', 'ASC');
}
}
}
},
Sencha Filter:过滤器商店
Sencha Sort:排序存储数据