我根据网格的状态创建了一个过滤器。但是,无论状态如何,我都无法找到一种方法来查看所有任务。有没有办法在过滤器中添加所有选项,以便显示来自所有状态的任务?这是我到目前为止的代码
xtype : 'rallyfieldvaluecombobox',
itemId : 'stateComboBox',
fieldLabel : 'Filter by State:',
model : 'task',
field : 'State',
listeners : {
select : this._onSelect1,
ready : this._onLoad1,
scope : this
}
答案 0 :(得分:0)
这是一种做法。在这个组合框中,我设置allowNoEntry: true
,并使用它代替" all"。选择NoEntry时,组合框返回null。我在_getStateFilter
检查了这个条件。
如果组合框返回null,则_getStateFilter
返回空过滤器,这有效地删除了State的所有过滤,并返回所有任务,而不管State值如何。
Ext.define('CustomApp', {
extend: 'Rally.app.App',
componentCls: 'app',
launch: function() {
this.add({
xtype: 'rallyfieldvaluecombobox',
itemId: 'stateComboBox',
fieldLabel: 'Filter by State:',
model: 'Task',
field: 'State',
allowNoEntry: true,
listeners: {
select: this._onSelect,
ready: this._onLoad,
scope: this
}
});
},
_onLoad: function() {
this.add({
xtype: 'rallygrid',
columnCfgs: [
'FormattedID',
'Name',
'State'
],
context: this.getContext(),
storeConfig: {
model: 'task',
context: this.context.getDataContext(),
filters: [this._getStateFilter()]
}
});
},
_getStateFilter: function() {
if (!this.down('#stateComboBox').getValue()) {
return {}
}
else{
return {
property: 'State',
operator: '=',
value: this.down('#stateComboBox').getValue()
};
}
},
_onSelect: function() {
var grid = this.down('rallygrid'),
store = grid.getStore();
store.clearFilter(true);
store.filter(this._getStateFilter());
}
});