2013-06-30 1 views
1

У меня есть списокОбновить список в виде панели

Ext.define('EvaluateIt.view.RemoveList', { 
    extend: 'Ext.dataview.List', //'Ext.tab.Panel', 
    alias : 'widget.removeList', 
    config: { 
     width: Ext.os.deviceType == 'Phone' ? null : 300, 
     height: Ext.os.deviceType == 'Phone' ? null : 500, 
     xtype: 'list', 
     store: 'SiteEvaluations', //getRange(0, 9), 
     itemTpl: [ 
      '<div><strong>Address: {address}</strong></div> ' 
     ], 
     variableHeights: false 
    } 

}); 

, что визуализируется в виде панели:

Ext.define('EvaluateIt.view.Remove', { 
     extend: 'Ext.Container', 
     fullscreen: true, 
     config: { 
      layout: 'vbox', 
      items: [ 
       { 
        xtype : 'toolbar', 
        docked: 'top' 
       }, 
       { 
        flex: 1, 
        xtype: 'removeList' 

       } 
      ] 
     } 
}); 

Как обновить список, если он меняется? Например, у меня есть метод, который onTap элемента в списке MsgBox предоставит возможность удалить эту запись из хранилища с помощью данного индекса. Я попробовал load() после удаления записи, но это не делает обновление (в браузере это обновление и в симуляторе я должен выйти и вернуться в приложение).

Вот MsgBox:

Ext.Msg.show({ 
     title:'Are you sure?', 
     buttons: Ext.MessageBox.YESNO, 
     //animateTarget: 'mb4', 
     //icon: Ext.MessageBox.WARNING, 
     fn: function(buttonId) { 
      //alert('You pressed the "' + buttonId + '" button.'); 

      if (buttonId === 'yes') { 
       evaluationsStore = Ext.getStore(evaluationStore); 
       index = evaluationStore.findExact('id', id); // get index of record 

       console.log('index: ' + index); 
       evaluationStore.removeAt(index); // remove record by index 
       evaluationStore.sync(); 
       alert('It is gone!'); 

       Ext.getStore(evaluationStore).load(); 

      } 
      else { 
       alert('Unscathed!'); 
      } 
     } 
    }); 

Grazie!

ответ

1

После того, как запись удалена из базы данных, ваш список должен обновляться автоматически. Магазин будет генерировать событие «обновления», и список, в котором хранится хранилище, обновит его содержимое. Вы говорите, что для вас это не работает?

+0

Привет, вы правы: панель формы должна быть обновлена ​​вручную, чтобы получить обновление в магазине. Возможно, это вариант конфигурации в прокси-сервере? У меня есть автозагрузка: true. –

+0

autoLoad отличается - он загружается автоматически, когда приложение запускается. Можете ли вы создать небольшую скрипку, чтобы мы могли посмотреть на нее и рассказать вам, что случилось? – sha

+0

К сожалению! Мой синтаксис был неправильным! Это выполнило задание: \t Ext.StoreMgr.get ('SiteEvaluations'). Load(); (у меня был алиас магазина в его конфигурации!). –

 Смежные вопросы

  • Нет связанных вопросов^_^