Я новичок в EXTJS 4 и на этом форуме. Извините, если это уже обсуждалось в другой теме, но я не нашел.
Мой вопрос в том, что я хочу, чтобы моя панель Grid с пагинацией обновляла свой магазин каждые 10 секунд. Я нашел решение, используя userStore.loadPage(current_page)
, но у него есть проблема.
Некоторое время обновление Grid Panel происходит почти одновременно с нажатием пользователем кнопки "next" или "prev" в Pagination. Из-за этого панель Grid Panel не работает должным образом. Я хочу, чтобы когда я нажимаю "next" или "prev" или "refresh", предыдущий запрос (userStore.loadPage(current_page)
) прерывался. Так что это не помешает моему текущему запросу.
Но я не нашел события в EXTJS Paging Toolbar для обработки кнопок "next", "prev" или "refresh". Каково решение этой проблемы? Есть ли какой-нибудь способ?
Вот мой код для справки:
// 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);
}
}