要过滤一个网格列,我们可以使用:
{
xtype: 'button',
text:'Search',
handler:function(){
store.clearFilter();
var searchValue = Ext.getCmp("textFieldId").getValue();
store.load().filter('GridFieldName', searchValue);
}
}
但是如何一次搜索多个字段,例如:
{
xtype: 'button',
text:'Search',
handler:function(){
store.clearFilter();
var searchValue = Ext.getCmp("textFieldId").getValue();
store.filter([
{property: "GridFieldName", value: searchValue},
{property: "GridFieldName1", value: searchValue}
]);
}
}
有任何想法吗?
编辑:
奇怪的是,在两种情况下,只有一次搜索有效:
这有效:
store.filter([
{ property: "FirstName", value: searchValue }
]);
这有效:
var FirstNameFilter = new Ext.util.Filter({
property: "FirstName", value: searchValue
});
store.filter(FirstNameFilter);
但这不是:
store.filter([
{ property: "FirstName", value: searchValue },
{ property: "LastName", value: searchValue }
]);
或这样做:
var filters = [
new Ext.util.Filter({
property: "FirstName", value: searchValue
}),
new Ext.util.Filter({
property: "LastName", value: searchValue
})
];
store.filter(filters);
最佳答案
尝试创建Ext.util.Filter
的实例,如下所示:
var filters = [
new Ext.util.Filter({
property: "GridFieldName", value: searchValue
}),
new Ext.util.Filter({
property: "GridFieldName1", value: searchValue
})
];
store.filter(filters);
或者,您可以使用自定义逻辑创建单个过滤器:
var filters = [
new Ext.util.Filter({
filterFn: function(item){
return item.get('GridFieldName') == searchValue && item.get('GridFieldName1') == searchValue;
}
})
];
store.filter(filters);
关于extjs - 如何过滤多个extjs网格列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7996028/