Я новичок в EXTJS 4 и на этом форуме.Извините, если это уже обсуждалось в другой ветке, но я не нашел его.
Мой вопрос: я хочу, чтобы моя Grid Panel с Pagination обновляла свое хранилище каждые 10 секунд.Я нашел решение, используя userStore.loadPage(current_page)
, но у него есть проблема.
Некоторое время, обновляя Grid Panel почти одновременно, пользователь нажимает "next" или "prev" в Pagination.Это заставляет Grid Panel работать неправильно.Что я хочу, так это то, что когда я нажимаю «далее», «предыдущий» или «обновить», предыдущий запрос (userStore.loadPage(current_page)
) прерывается.Так что это не помешает моему текущему запросу.
Но я не нашел события в панели инструментов подкачки EXTJS для обработки кнопки «следующий», «предыдущий» или «обновить».Какое решение для этой проблемы?Есть ли способ?
Это мой код только для справки:
// create User Store
var userStore = Ext.create('Ext.data.Store', {
model: 'EDC',
autoLoad: true,
pageSize: 10,
proxy: {
type: 'ajax',
url : 'Monitoring', // it is using Java servlet, so I write it this way
reader: {
type: 'json',
root: 'edc',
totalProperty: 'total'
}
}
});
// create Grid Panel
Ext.create('Ext.grid.Panel', {
store: userStore,
width: 800,
height: 400,
columns: [
{
text: "ID",
width: 50,
dataIndex: 'id'
},
{
text: 'Serial Number',
flex: 1,
dataIndex: 'sn'
}
// etc...
],
dockedItems: [{
xtype: 'pagingtoolbar',
store: userStore,
dock: 'bottom',
displayInfo: true
}]
});
Так обновляется каждые 10 секунд
// after on Ready, reload every 10 seconds
Ext.onReady(function(){
self.setInterval("reloadCurrentEdc()", 10000);
});
// function for update
function reloadCurrentEdc(){
if(typeof userStore != 'undefined'){
userStore.loadPage(userStore.currentPage);
}
}