我真的很难理解或者说更正确的说法 - 在我的任何商店使用过滤器并在网格中加载信息。我有一个更复杂的任务,但为了理解事情是如何工作的,我决定使用最简单的例子,因为我可以只看到事情的发生,然后添加更多逻辑,这样我就可以磨练自己的知识。但是我仍然没有得到任何令人鼓舞的结果,所以我再次寻求帮助。
我的模型中有一个gridPanel,它使用自己的商店,在这种情况下:
“RecordsListStore”
我有
xtype:combo;
看起来像这样:
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
}
使用它自己的商店在组合框中加载数据,可以从用户中选择。
第三部分,选择功能是:
_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());
},
我认为第三个商店用于获取过滤后的数据。问题是控制台日志显示我发送过滤器,但每次我得到空结果。但如果一切正常,我认为应该有一些信息,所以有错误或缺少一些东西,但我无法弄清楚应该做些什么。
答案 0 :(得分:1)
getValue()
将从商店中的组合框而非索引中给出价值。因此,在获得此值后,您需要实际使用store.findExact('some_field', value)
之类的内容进行记录,并且仅在getAt()
之后使用您获得的索引进行记录。