【发布时间】:2012-04-23 19:17:04
【问题描述】:
我真的很难理解或更正确的说法是 - 在我的任何商店中使用过滤器并将信息加载到网格中。我有一个更复杂的任务,但为了理解事情是如何工作的,我决定尽可能使用最简单的例子来看看事情是如何发生的,然后添加更多的逻辑,这样我就可以磨练我的知识了。但是我仍然没有得到任何令人鼓舞的结果,所以我再次寻求帮助。
我的模型中有一个 gridPanel,它使用他自己的商店,在这种情况下:
“记录列表存储”
我有
xtype: 组合;
看起来像这样:
xtype: 'combo',
id: 'records_list_author_id',
emptyText: 'Филтриране по автор',
editable: false,
store: 'Users',
displayField: 'firstname',
valueField: 'id',
lastQuery: '',
triggerAction: 'all',
queryMode: 'remote',
typeAhead: false,
width: 200,
listeners: {
select: this._filterRecords
}
它使用自己的商店来加载组合框中的数据,这些数据可以从用户那里选择。
第三部分,select函数是:
_filterRecords: function()
{
var recStore = Ext.getStore('FilterRecordsByAuthor');
var a = Ext.getCmp('records_list_author_id').getValue( );
var rec = Ext.getStore('FilterRecordsByForm').getAt(a);
recStore.filters.clear();
//recStore.load();
recStore.filter([{
"property":'form_id',
"value": 1
}]);
console.log(recStore.load());
},
这里出现了第三个存储,我认为它可以用于获取过滤后的数据。问题是控制台日志显示我发送了过滤器,但每次我得到空结果。但是,如果一切正常,我认为应该有一些信息,所以有错误或缺少某些东西,但我不知道应该做什么。
【问题讨论】:
-
所以使用这个
_filterRecords: function() { var a = Ext.getCmp('records_list_author_id').getValue( ); var rec = Ext.getStore('RecordsListStore'); rec.filters.clear(); rec.filter([{ "property":'author_id', "value": a }]); console.log(a); },我现在可以在网格中加载信息,我只需要在我的 SQL 查询中添加 $data['filter'] 但现在我想重新加载没有过滤器的商店有什么想法吗?我试试这个handler: function() { var rec = Ext.getStore('RecordsListStore'); rec.load(); }但没有成功