• Publicidad (ayudanos a mantener el Foro haciendo un click sobre la misma)
  • Cuixer, una forma de administrar páginas web que nunca viste!

No funciona PagingToolbar

Foros generales de ayuda Ext 2.0.
Avatar de Usuario
Ext.foro.Miembro
Mensajes: 152
Registrado: 02 May 2008, 12:36
Ubicación: Santiasko, Chile
NotaPublicado: 26 May 2008, 16:04
saludos a todos,
estoy utilizando esta barra para paginar mi grid pero no me funciona para nada,
tengo 22 registros que lo voy llamando de 10 por pagina
en mi carga de store lo tengo de esta manera
store.load({params:{start:0, limit:10}});
y como resultado me aparece :

1 de 3 paginas y mostrando 1 -22 de 22,
pongo siguiente pagina y aparece:
2 de 3 paginas y mostrando 11- 32 de 22
3 de 3 paginas y mostrando 21 - 41 de 22

deberia aparecerme 1 de 3 cargando 2 de 10 registros y la utima de 2 pero no sucede
ojala que me entiendan
les dejo mi codigo

gracias


Código: Seleccionar todo
   bbar: new Ext.PagingToolbar({
                pageSize: 10, //default is 20
                store: store,
                displayInfo: true, //default is false (to not show displayMsg)
                displayMsg: 'Mostrando  {0} - {1} de {2}',
                emptyMsg: "No existen datos",//display message when no records found
                items:[
                    '-', {
                    pressed: true,
                    enableToggle:true,
                    text: 'Show Preview',
                    cls: 'x-btn-text-icon details'
                    //toggleHandler: toggleDetails 
                }]
            })
Para no ver esta publicidad, debes ser usuario del Foro.
Publicidad (ayudanos a mantener el Foro haciendo un click sobre la misma)


Cuixer, una forma de administrar páginas web que nunca viste!

Avatar de Usuario
Ext.foro.Administrador
Mensajes: 1932
Registrado: 07 Mar 2008, 20:45
Ubicación: Argentina
NotaPublicado: 26 May 2008, 23:30
Por lo que veo, hasta ahí estaría todo bien.
Por favor, mostranos el código de tu store.

Saludos.
Aprender haciendo...
Desarrollo de aplicaciones en ExtJS [CONSULTAR].
Buscar en el foro antes de preguntar y Leer la Documentación.
Imagen
Avatar de Usuario
Ext.foro.Miembro
Mensajes: 152
Registrado: 02 May 2008, 12:36
Ubicación: Santiasko, Chile
NotaPublicado: 27 May 2008, 10:07
Código: Seleccionar todo
var store = new Ext.data.Store({
        proxy: new Ext.data.HttpProxy({url: 'adm_usuarios1.htm' }),
        //JsonReader recoge los datos traidos del url segun el nombre del array (root)
        reader: new Ext.data.JsonReader({
         root: 'user',
             totalProperty: 'total',
         id: 'login'
         },//datos que vienen en el JsonArray
              [
               
               {name: 'login', mapping: 'login'}, 
               {name: 'nombres', mapping: 'nombres'},
               {name: 'apellidos', mapping: 'apellidos'},
               {name: 'email', mapping: 'email'}
           ] ),
            sortInfo:{field: 'login', direction: "ASC"}
           
    });

me parece que es problema de la consulta, ojala me pudieses explicar un poco si no te molesta....
me dijieron que se tiene que pasar 2 variables de principio y fin a la consulta?
y mi problema me parece es por que siempre hago la misma consulta por esto siempre me trae los 22 registros

ojala me puedas ayudar

saludos

Ext.foro.Nuevo
Mensajes: 37
Registrado: 29 Feb 2008, 05:16
NotaPublicado: 27 May 2008, 10:20
Hola:
Capturas en el servlet o donde hagas la consulta los parametros start y limit para añadirlos en la consulta y así recoger sólo esos registros y no los 22??

un saludo
Avatar de Usuario
Ext.foro.Miembro
Mensajes: 152
Registrado: 02 May 2008, 12:36
Ubicación: Santiasko, Chile
NotaPublicado: 27 May 2008, 17:11
pero como saco los datos?
por que esos valores {0} {1} y {2} no se declaran en ningun lado
ademas no existe ningun submit al momento de escoger la siguiente pagina del toolbar
ojala me puesen explicar
jeje

bien perdido que ando
Avatar de Usuario
Ext.foro.Administrador
Mensajes: 1932
Registrado: 07 Mar 2008, 20:45
Ubicación: Argentina
NotaPublicado: 28 May 2008, 02:05
El {0} es igual al parámetro start.
El {1} es igual al parámetro limit.
El {2} es igual al parámetro total.

Para que funcione bien el paginado, el PagingToolbar pasa como parámetros en la consulta las variables start y limit. De esa manera, podrás hacer una consulta PHP hacia la Base de Datos y aplicar los parámetros mencionados anteriormente de esta manera:
Código: Seleccionar todo
$start = $_GET['start'];
$limit = $_GET['limit'];

$sql = "SELECT * FROM tabla LIMIT $start,$limit";
...

De todas formas, te recomiendo que le eches un vistazo a ESTE ejemplo.

Saludos y espero que te haya aclarado tus dudas.
Aprender haciendo...
Desarrollo de aplicaciones en ExtJS [CONSULTAR].
Buscar en el foro antes de preguntar y Leer la Documentación.
Imagen
Avatar de Usuario
Ext.foro.Nuevo
Mensajes: 6
Registrado: 09 Jun 2008, 16:51
Ubicación: Venezuela
NotaPublicado: 11 Jun 2008, 19:52
Ronhead

Probablemente a estas alturas ya hayas encontrado la solución a este problema, sin embargo, considero también importante postearla también para que aquellos como yo, que en algun momento les pasó lo mismo cuenten con una solución rapida. Recordemos que el tiempo es oro. ;)

Al igual que garraS pienso que el problema radica en como la informacion es obtenida desde el servidor, por tanto la respuesta dada por garraS en efecto pareciera ser la solucion, no obstante me permito ampliarla un poco.
Código: Seleccionar todo
....
$tabla = 'paises';



$start = (integer) (isset($_POST['start']) ? $_POST['start'] : $_GET['start']);

$end = (integer) (isset($_POST['limit']) ? $_POST['limit'] : $_GET['limit']); 



$sql_count = 'SELECT * FROM ' . $tabla;

$sql = $sql_count . ' LIMIT ' . $start . ', '. $end;



$result_count = mysql_query($sql_count);



$rows = mysql_num_rows($result_count);



$result = mysql_query($sql);



while($rec = mysql_fetch_array($result, MYSQL_ASSOC)){

   $arr[] = $rec;

};



if (version_compare(PHP_VERSION,"5.2","<")){

   require_once("JSON.php");

   $json = new Services_JSON();

   $data=$json->encode($arr);

}else{

   $data = json_encode($arr);

}   

echo '({"total":"' . $rows . '","paises":' . $data . '})';

Como habras podido notar se hacen dos consultas y se almacenan en variables distantas $rows devuelve el total de registros y $result devuelve el resultado de la consulta limitada dependiendo de las variables $end y $start con esto te debiera aparecer la barra de informacion correctamente.

Por cierto esto fue tomado del Ejemplo que te dijo antes garraS que le echaras un vistazo. :)

Saludos
Cristo, Socialismo, Fútbol y Software Libre

Ext.foro.Nuevo
Mensajes: 18
Registrado: 14 Feb 2010, 13:33
NotaPublicado: 27 May 2011, 13:43
Eso me pasó hace rato, simplemente el problema mío era que cuando codificaba el resultado de la consulta el total siempre es el "limit", es decir en tu caso 20.

Lo que yo hice es una solución con un costo doble, hacer dos consultas una con el total verdadero de todas las filas posibles y coger ese TOTAL, no el de la consulta con el start y el limit porque esa te devuielve siempre el limit, es decir el total de filas que le mandas o configuras en el PagingToolbar------ (pageSize)-----

No se si me hice entender. La idea es esta

ejecuto consulta total
cogo el total de filas devueltas

ejecuto consulta con los parametros de paginado
codifico con el total de la anterior y con las filas que devulve esta consulta..

Fue mi solución....

Espero te sirva

Volver a Ext 2.0: Ayuda





  • Publicidad (ayudanos a mantener el Foro haciendo un click sobre la misma)
  • Cuixer, una forma de administrar páginas web que nunca viste!