Как получить запись магазина на itemtap - PullRequest
0 голосов
/ 25 октября 2011

Я знаю, что в 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...]
        },
    });
}

1 Ответ

1 голос
/ 25 октября 2011

В моем коде я всегда использую это:

function(dv, index, item, e){
    var rec = dv.getRecord(item);
    //...
}

item, если меня не помнят неправильно, это Ext.Element из нажатых div, так что все будет в порядке. DataView предоставляет getRecord из Element, так что вы можете использовать его.

Если я не ошибаюсь, я видел это в одном из их исходных файлов, когда случайно столкнулся с вашей проблемой несколько месяцев назад.

Удачного кодирования!

...