2012-01-11 2 views
0

Я использую функцию Reconfigure для изменения столбцов и данных формы панели .Пейджинговый магазин не изменился

Смотрите ниже код, который я написал

var newStore = Ext.create('Ext.data.Store', { 
     fields: tmpFields, 
     pageSize: itemsPerPage, 
     proxy: { 
      type: 'ajax', 
      url: getDataWithPageURL, 

     } 
    }); 


    globalStore = newStore.load({ 
     params: { 
      start: 0, 
      limit: itemsPerPage 
     } 
    }); 

    grid.reconfigure(globalStore, tmpColumns); 

код работает, и данные изменяются. Но пейджинг и общая информация показывают старые данные.

Пожалуйста, помогите.

ответ

0

Я думаю, что это ошибка в функции перенастройки.

Таким образом, я создал pagging bar и добавил снова. Смотрите ниже код

var PagingBar = Ext.create('Ext.PagingToolbar', { 
     pageSize: itemsPerPage, 
     store: globalStore, 
     dock: 'bottom', 
     displayInfo: true 
    }); 

    grid.removeDocked(grid.getDockedItems()[1]); 

    grid.addDocked(PagingBar); 
1

В ExtJS, PagingToolbar тесно сотрудничает с данным Store, и это является причиной того, почему нет слушателя событий зацепили на reconfigure, потому что reconfigure определяется в Ext.panel.Table.

Следовательно, другое решение является подменой магазин, когда reconfigure был уволен, то есть:

Ext.define('NS.toolbar.Paging', { 
    extend: 'Ext.toolbar.Paging', 
    initComponent: function() { 
     var me = this; 
     me.callParent(); 
     me.on('afterrender', function() { 
      me.ownerCt.on('reconfigure', function() { 
       me.bindStore(me.ownerCt.store || 'ext-empty-store', true); 
      }); 
     }); 
    } 
}); 

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

Протестировано и работает. Try it out here at jsfiddle

Cheers

+0

Я уже обошел его. Спасибо за помощь –