我知道在onItemTap中,我可以通过
检索相应的数据记录 itemtap : function(dv, index, item, e){
dv.getStore().getAt(index);
但我的列表是通过collectData-Method过滤的,因此索引与数据存储中的ID不对应。 无论列表索引如何,有没有办法在点击列表时获取数据记录?
[更新]
嵌入listview的代码段如下所示:
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:
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...]
},
});
}
答案 0 :(得分:1)
在我的代码中,我总是使用它:
function(dv, index, item, e){
var rec = dv.getRecord(item);
//...
}
item
,如果我没有被错误地记住,则是点击Ext.Element
的{{1}},那么你应该没事。 div
确实提供了来自DataView
的{{1}},因此您可以使用它。
如果我没有错的话,几个月前我碰巧遇到你的问题时,我从他们的一个源文件中看到了这个。
快乐的编码!