我使用分机3.4格栅过滤器插件工作排序能电网。 我想默认情况下,主动筛选栏中的真正价值。 用户谁需要无用的记录可以删除过滤器。 如何指定一个默认的过滤柱和价值?
提前致谢!
colModel: new Ext.grid.ColumnModel({
defaults: {
sortable: true
// How do I specify a default filter value
//
// Only show active records unless the user changes the filter...
},
columns: [{
dataIndex:'f_uid',
id:'f_uid',
header:'ID',
hidden:true
}, {
dataIndex:'f_name',
id:'f_name',
header:'Name',
}, {
xtype:'booleancolumn',
dataIndex:'f_active',
id:'f_active',
header:'Active',
filterable:true,
trueText:'Active',
falseText:'Inactive'
}]
Answer 1:
我意识到这是一个老问题,但我花了一段时间才能找到解决的办法,所以我想我也有同感。
1)该过滤器可以使用在过滤器中的value属性来设置。
filter: {
type: 'LIST',
value: ['VALUE TO FILTER']
}
2)为了最初筛选数据使用在商店中filterBy()方法。 这可能在OnRender将事件处理程序定义。
this.getStore().load({
scope:this,
callback: function() {
// filter the store
this.getStore().filterBy(function(record, id) {
// true will display the record, false will not
return record.data.DATA_TO_FILTER == 'VALUE TO FILTER ';
});
}
});
Answer 2:
答案是在Filter.js源代码。 列定义中的过滤器对象可以用来配置默认的行为。
}, {
xtype:'booleancolumn',
dataIndex:'f_active',
id:'f_active',
header:'Active',
trueText:'Active',
falseText:'Inactive',
filterable:true,
filter: {
value:1, // 0 is false, 1 is true
active:true // turn on the filter
}
}
Answer 3:
我也遇到同样的问题,我发现@约翰的答案是正确的,我可以把它与样品工作http://dev.sencha.com/deploy/ext-4.0.0/examples/grid-filtering/grid-过滤local.html ,为电网滤波器local.js,只需添加如下代码:
grid.getStore().load({
scope:this,
callback: function() {
// filter the store
grid.getStore().filterBy(function(record, id) {
// true will display the record, false will not
return record.data.size === 'small';
});
}
});
原代码store.load()之前,擦去该store.load()。 那么就只会显示尺寸在网页的第一负载等于“小”的记录。 干杯!
Answer 4:
我做了一个通用助手类,它可以让你在列定义设置任何缺省值。 https://gist.github.com/Eccenux/ea7332159d5c54823ad7
这应该与远程和静态存储工作。 请注意,这也适用于filterbar插件。
所以,你的列项是一样的东西:
{
header: 'Filename',
dataIndex: 'fileName',
filter: {
type: 'string',
// filename that starts with current year
value: Ext.Date.format(new Date(), 'Y'),
active:true
}
},
然后在你的窗口组件时,只需添加类似:
initComponent: function() {
this.callParent();
// apply default filters from grid to store
var grid = this.down('grid');
var defaultFilters = Ext.create('Ext.ux.grid.DefaultFilters');
defaultFilters.apply(grid);
},
文章来源: How do I set a Ext Grid Filter Default?