cómo verificar la carga de dojo.datagrid completada?
onload dojox.grid.datagrid (4)
La cuadrícula de datos en sí misma nunca carga todos los datos disponibles, solo muestra una sub selección de los datos en su tienda.
Tendrá que unirse a los eventos de la tienda para ver el evento de carga. Dado que la tienda puede cargar datos de muchos lugares, deberá pasar una función onComplete al método fetch de la tienda de grillas.
grid.store.fetch({onComplete : function (items) { // Do something }});
También puede crear la tienda de forma programática, llamar a buscar con su oyente completo, y una vez que haya terminado la modificación de los elementos en el oyente en conjunto de la tienda, llame a myGrid.setStore (myStore);
Esta pregunta ya tiene una respuesta aquí:
Tengo un dojo.datagrid en una de mis páginas. Datagrid y su tienda (llamando a una URL) se crean mediante un método declarativo. no por dinámico / programático.
Necesito ejecutar un método de JavaScript que muestre un div (que requiere pocos datos de la cuadrícula de datos) justo debajo de mi cuadrícula de datos. Debería mostrar el div solo después de completar la carga de la cuadrícula de datos, no antes de eso.
Estoy buscando evento como carga completada para datagrid. ¿Hay algún evento que tengamos con dojo.datagrid? No lo veo en la lista del evento de la documentación de dojo.Datagrid.
¿Hay alguna forma de verificar la carga de datos de la red dojo completada?
¿Hay alguna forma de usar dojo.connect para manejar esto?
Por favor, avíseme si tenemos alguna forma de hacer esto ...
Gracias, Raj.
Puede configurar un temporizador para verificar si los datos están cargados, ejecutar cada segundo o más hasta que la carga se complete (setSelectedIndex devolverá verdadero):
private var load_check:uint;
/* start the interval timer when the app is initialized */
protected function init ():void
{
load_check = setInterval(getTime, 500); // 1/2 second
}
private function getTime():void
{
if ( !datagrid.setSelectedIndex (0))
return;
clearInterval(load_check); // data loaded!
}
DataGrid
tiene un evento _onFetchComplete
que se puede conectar con dojo.connect
. Sin embargo, tenga en cuenta que comienza con _
, por lo que se supone que es un tipo de evento privado / protegido y su comportamiento podría cambiar en versiones más nuevas de Dojo. Sé que funciona bien en Dojo 1.6.
Como Alex ya señaló, puede reaccionar ante el evento (por desgracia) privado _onFetchComplete
. Con dojo 1.7, esto se puede lograr con dojo.aspect como:
require(["dojo/aspect", "dojox/grid/DataGrid", ...], function(aspect, DataGrid, ...)
var myGrid = new DataGrid({ ... });
aspect.after(myGrid, "_onFetchComplete", function() {
// Do something with myGrid...
});
});