/
Paginación en plantillas de gadgets

Paginación en plantillas de gadgets

Cuando quieras paginar los resultados en nuestra plantilla de gadget, debes utilizar el enfoque multidatasource, que te permite realizar alguna transformación del servidor como: limit, group, select, param, where, ...

En tu muestra, puedes obtener los datos página por página con la siguiente instrucción:

vm.from("{{datasource}}").skip(step*bulk).limit(bulk).exec().then

Ahora puedes iterar por los resultados con, por ejemplo, la función asíncrona recursiva iterateResult. Es necesario llamar primero con los parámetros iniciales:

vm.acum = []; var bulk = 1000; var step = 0; iterateResult(vm.acum, step, bulk, callback);

La función callback se llamará cuando se hayan recuperado todos los datos:

//función para hacer algo después de recuperar todos los registros function callback(){    alert("Recuperando " + vm.acum.length + " registros")  }

El código completo del ejemplo es el siguiente:

//función asíncrona recursiva para recuperar los datos. Cuando se procesan todos los datos se llama a la función callback function iterateResult(acum,step,bulk,callback){     var acum = acum;     var step = step;     var bulk = bulk;     var callback = callback;     //salesimportonto_raw es la datasource      vm.from("salesimportonto_raw").skip(step*bulk).limit(bulk).exec().then(          function(data){              if(data!=null && data.length>0){//there is more data                 acum.push.apply(acum, data);                 step++;                 iterateResult(acum,step,bulk,callback);              }              else{//there isn't more data                  //Paginación acabada, ahora dibujar gráfico u otras cosas                  callback()              }          }      ) } //función para hacer algo después de recuperar todos los registros function callback(){    alert("Recuperando " + vm.acum.length + " registros")  } //Esta función se llamará una vez para initar los componentes vm.initLiveComponent = function(){     vm.acum = [];     var bulk = 1000;     var step = 0;     iterateResult(vm.acum, step, bulk, callback);     //Aquí no tenemos el resultado por la función asíncrona };

 

Related content

Pagination in gadget templates
Pagination in gadget templates
More like this
Consultas multidatasources-datadiscovery en Gadget Template
Consultas multidatasources-datadiscovery en Gadget Template
More like this
Paginación de ficheros en el Files Repository y nuevo componente para el DataFlow
Paginación de ficheros en el Files Repository y nuevo componente para el DataFlow
More like this
Creación de Tablas con paginación utilizando Datatable
Creación de Tablas con paginación utilizando Datatable
More like this
Multidatasources-datadiscovery queries in Gadget Template
Multidatasources-datadiscovery queries in Gadget Template
More like this
Primeros pasos con Onesait API GIS
Primeros pasos con Onesait API GIS
More like this