Я знаю, что в onItemTap я могу получить соответствующую запись данных с помощью
itemtap : function(dv, index, item, e){
dv.getStore().getAt(index);
Но мой список фильтруется с помощью метода collectData, поэтому индексы не соответствуют идентификаторам в хранилище данных.
Есть ли способ получить запись данных при нажатии на список, независимо от списка индексов?
[Update]
Фрагмент, в который встроен просмотр списка, выглядит следующим образом:
app.views.MyView = Ext.extend(Ext.TabPanel, {
...
items: [
{
title: _('PanelTitel'),
xtype: 'panel',
scroll: 'vertical',
items: [
getListView(0)
]
},
{
title: _('Second PanelTitel'),
xtype: 'panel',
scroll: 'vertical',
items: [
getListView(1)
]
}
]
...
И функция getListView:
function getListView(tab_index) {
return new Ext.List({
store: new Ext.data.Store(
{
model: "app.models.MyModel",
sorters: 'created_at'
}
),
itemTpl: new Ext.XTemplate(
'<tpl for=".">',
'<div class="my_row">',
' {username}',
'</div>',
'</tpl>'
),
onItemDisclosure: true,
listeners : {
itemtap : function(dv,index,item,e){
var rec = dv.getRecord(item);
}
},
collectData: function(records, startIndex) {
[some sorting...]
},
});
}