2014-10-22 10 views
0

После изменения выбора шаблона dataview исчезли события. У меня есть dataview, магазин и шаблон. Но мне нужно динамически, когда вы нажимаете на раскрывающийся список, чтобы изменить данные и шаблон соответственно dataview. После изменения шаблона и загрузки данных мне нужно выбрать строку Event.extjs dataview not fount event select

DataView:

items: [ 
      { 
       xtype: 'dataview', 
       autoScroll: true, 
       id: 'dataview', 
       margin: '10 0 10 10', 
       disableSelection: false, 
       itemSelector: 'div', 
       itemTpl: [ 
        '<table>', 
        ' <tr>', 
        '  <td width=\'200px\'><input type="checkbox" enabled="enabled" value="open" name="comment_status" <tpl if="active">checked="checked"</tpl> /><img src="{host}/avl_icon/get/{id}/18/any.png">{nm}</td>', 
        '  <td class="configure"></td>', 
        ' </tr> ', 
        '  </table>', 
        ' ' 
       ], 
       store: 'CarStore', 
       listeners: { 
        itemclick: { 
         fn: 'onDataviewSelectConfigure', 
         single: false 
        }, 
        select: 'onDataviewSelect' 
       } 
      } 

магазин

Ext.define('MyApp.store.CarStore', { 
extend: 'Ext.data.Store', 

requires: [ 
    'MyApp.model.CarModel', 
    'Ext.data.JsonStore', 
    'Ext.data.proxy.Ajax', 
    'Ext.data.JsonPStore' 
], 

constructor: function(cfg) { 
    var me = this; 
    cfg = cfg || {}; 
    me.callParent([Ext.apply({ 
     pageSize: 999, 
     storeId: 'CarStore', 
     model: 'MyApp.model.CarModel', 
     proxy: { 
      type: 'jsonp', 

      url: 'http://localhost:3000/wialoncollector/items/'+Ext.util.Cookies.get("ssid"), 
      callbackKey: 'callback', 
       reader: { 
         root: 'items' 
       }, 

headers: '("Access-Control-Allow-Origin", "*")' 
     } 
    }, cfg)]); 
} 

});

функция нового шаблона

onObjectsClick: function(component, eOpts) { 
    var panel = Ext.getCmp('dataview'); 

    store = Ext.getStore('CarStore'); 

    store.reload(); 


    panel.tpl = new Ext.XTemplate(
     '<tpl for=".">', 
     '<table class="tabview">', 
     ' <tr>', 
     '  <td width=\'200px\'><input type="checkbox" enabled="enabled" value="open" name="comment_status" <tpl if="active">checked="checked"</tpl> /><img src="{host}/avl_icon/get/{id}/18/any.png">{nm}</td>', 
     '  <td class="configure"></td>', 
     ' </tr> ', 
     '  </table>', 
     '</tpl>', 
     ' '); 

}

После визуализации нового шаблона и данные, я не могу применить событие выбора. Что я делаю не так?

ответ

0

Похоже, что ваш itemSelector - это div, но у вас нет div на вашем шаблоне.

Попробуйте изменить его itemSelector: tr[name=car]

, а затем изменить свой новый TPL к:

panel.tpl = new Ext.XTemplate(
    '<tpl for=".">', 
    '<table class="tabview">', 
    ' <tr name=\'car\'>', 
    '  <td width=\'200px\'><input type="checkbox" enabled="enabled" value="open" name="comment_status" <tpl if="active">checked="checked"</tpl> /><img src="{host}/avl_icon/get/{id}/18/any.png">{nm}</td>', 
    '  <td class="configure"></td>', 
    ' </tr> ', 
    '  </table>', 
    '</tpl>', 
    ' '); 
Смежные вопросы