PDA

View Full Version : Grid onload???



galdaka
27 Oct 2006, 12:26 AM
¿Como puedo detectar que el grid se ha cargado para hacer una operacion?

grid.addListener('load', onLoad); <= No funciona

¿Donde está la documentación sobre esto?

jack.slocum
27 Oct 2006, 9:22 AM
Its on the data model, depending on which one you use.

galdaka
28 Oct 2006, 2:30 AM
uso XMLDatamodel. Podrias ponerme la intrucción:

Seria asi??? grid.dataModel.addListener('load', onLoad); ??????

jack.slocum
28 Oct 2006, 6:38 AM
Yep.

galdaka
30 Oct 2006, 12:10 AM
Gracias Jack. ¿Como puedo ejecutar el "onload" solo la primera vez que se carga el grid?


dataModel.addListener('load', this.onLoadData);
....
.......
onLoadData : function(){
var toolbar = grid.getView().getPageToolbar();
toolbar.addSeparator();
toolbar.addText(""+grid.dataModel.totalCount+" documentos");
},

Pero este código me pone el total de documentos cada vez que avanzo página!!!. Como puedo hacer para que solo lo añada la primera vez: ¿Existe "firstload"?

Gracias

jack.slocum
30 Oct 2006, 1:23 AM
dataModel.addListener('load', this.onLoadData, this, true);
.....
onLoadData : function(){
dataModel.removeListener('load', this.onLoadData, this);
....
}

galdaka
30 Oct 2006, 1:50 AM
Gracias Jack. Funciona perfecto.

Lo utilizo para mantener en el toolbar inferior el número de documentos (totalcount) del grid. El problema es que cuando hago un filter necesito refrescar el número de documentos: Añado "dataModel.addListener('load', this.onLoadData, this, true);" y lo que hace es añadir otro texto con el número de documentos del filter.

Ejemplo:

1) Hago load y añado en el toolbar el nº de documentos. Quito el "onload" mediante removelistener para que no lo añada mas veces en el toolbar.

2) Cuando hago "filter" añado mediante "addlistener" el "onload" y me añade en el toolbar el número de documentos despues de hacer filter. Pero tengo 2 textos y solo quiero tener 1 con el numero de documentos total, ¿Es posible eliminar el texto anterior del toolbar? ¿como lo hago?

jack.slocum
30 Oct 2006, 11:53 AM
You can store the text element and just update it later:



this.textEl = toolbar.addText(""+grid.dataModel.totalCount+" documentos");


When you filter, you can call:



this.textEl.innerHTML = ""+grid.dataModel.totalCount+" documentos";