Soy nuevo con EXTJS 4 y este foro. Lo siento si ya se discutió en otro hilo, pero no lo encontré.¿Hay algún controlador de eventos en los botones de EXTJS Paging Toolbar?
Mi pregunta es, quiero que mi Grid Panel con Pagination actualice su tienda cada 10 segundos. He encontrado una solución usando userStore.loadPage(current_page)
, pero tiene un problema.
En algún momento, actualizando Grid Panel casi al mismo tiempo con el usuario, haga clic en "siguiente" o "anterior" en Paginación. Esto hace que el panel de cuadrícula no funcione correctamente. Lo que quiero es que cuando hago clic en "Siguiente" o "Anterior" o "Actualizar", la solicitud anterior (userStore.loadPage(current_page)
) se cancela. Por lo tanto, no interferirá con mi solicitud actual.
Pero no encontré evento en la barra de herramientas de localización EXTJS para manejar el botón "siguiente", "anterior" o "actualizar". ¿Cuál es la solución para este problema? ¿Hay alguna manera?
Este es mi código sólo para referencia:
// 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
}]
});
Es la forma en que se actualiza cada 10 segundos
// 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);
}
}
¿Dónde debo poner esto?Además, creo que hay algún error tipográfico: "antes de cambiar", (suponiendo que debe ser antes del cambio) –