Templates y Temas para ExtJS y Sencha Touch Bleext!
Bleextop! un desktop OpenSource para Ext4 y CodeIgniter http://bit.ly/pUwLJO
Soy principiante y necesito ayuda para paginar un grid.
  • Vote Up0Vote Down checa_f1checa_f1 February 2
    Posts: 1
    Soy principiante y estoy aprendiendo como mostrar el contenido de un archivo xml en un grid, hasta ahi todo bien. El problema comienza cuando quiero ir mostrando de a grupos de registros (paginado), me muestra siempre todos los registros. Busque varios ejemplos y no encuentro el error, les dejo el codigo para ver si me pueden dar una mano, para los que llevan mas tiempo de manejo del codigo seguro se van a dar cuenta rapido. Mil Gracias.


    var sUrl = '/wp-content/uploads/tables/TCgpcars.xml';

    Ext.onReady(function(){

    var Person = Ext.data.Record.create([
    {name: 'Pos'},
    {name: 'Nro'},
    {name: 'Piloto'},
    {name: 'Marca'},
    {name: 'Puntos'}
    ]);

    var reader = new Ext.data.XmlReader({
    record: 'ChampData',
    totalRecords: 'TotalRecord',
    totalProperty: 'TotalRecord',
    id: 'Pos',
    }, Person);

    //creates the Ext.data.Store
    var store = new Ext.data.Store({
    url: sUrl,
    totalProperty: 'total',
    reader: reader //setting the reader
    });

    var pager = new Ext.PagingToolbar({
    store: store, // <--grid and PagingToolbar using same store (required)
    displayInfo: true,
    displayMsg: '{0} - {1} of {2} Cities',
    emptyMsg: 'No cities to display',
    pageSize: 6
    });

    // create the grid
    var grid = new Ext.grid.GridPanel({
    store: store, //le asignamos la fuente de datos
    columns: [ //creamos las columnas
    {header: "Pos.", width: 38, dataIndex: 'Pos', type: 'string'},
    {header: "Nro", width: 35, dataIndex: 'Nro', type: 'string'},
    {header: "Piloto", width: 100, dataIndex: 'Piloto', type: 'string'},
    {header: "Marca", width: 60, dataIndex: 'Marca', type: 'string'},
    {header: "Ptos", width: 40, dataIndex: 'Puntos', type: 'int'}
    ],
    renderTo:'gridpanel',
    width:540,
    height:200,
    bbar: pager, // <--- Barra de paginación
    border: false, //le quitamos el borde
    stripeRows: true //le asignamos rayas a las filas
    });

    store.load();
    });
  • 5 Answers sorted by
  • Vote Up0Vote Down theriontherion February 3
    Posts: 28
    deberías justamente después de que llames los datos llamar la función por decirlo así que hace que pagine el grid,
    que es la que dice
    var pager
    entonces lo que yo creo que debes hacer es justamente después de que llamas los datos en el grid es decir en el store colocas
    renderer: pager, y yo creería que que funcionaria mas sin embargo nos cuentas como te fue.
  • Vote Up0Vote Down checa_f1checa_f1 February 3
    Posts: 1
    Hola therion, primero que nada gracias por tu respuesta tan rapida. Si no entendi mal el codigo modificado quedaria asi:


    // create the grid
    var grid = new Ext.grid.GridPanel({
    store: store, //le asignamos la fuente de datos
    renderer: pager,
    columns: [ //creamos las columnas
    {header: "Pos.", width: 38, dataIndex: 'Pos', type: 'string'},
    {header: "Nro", width: 35, dataIndex: 'Nro', type: 'string'},
    {header: "Piloto", width: 100, dataIndex: 'Piloto', type: 'string'},
    {header: "Marca", width: 60, dataIndex: 'Marca', type: 'string'},
    {header: "Ptos", width: 40, dataIndex: 'Puntos', type: 'int'}
    ],
    renderTo:'gridpanel',
    width:540,
    height:200,
    bbar: pager, // <--- Barra de paginación
    border: false, //le quitamos el borde
    stripeRows: true //le asignamos rayas a las filas
    });


    Si entendi bien la propuesta de modificación, no modifico el problema que tengo, sigue mostrando el total de los registros de primera, sin paginar.
    Disculpa si no te entendi soy nuevo en esto...
  • Vote Up0Vote Down CrysfelCrysfel February 5
    Posts: 897
    El servidor rebería regresar SOLO los registros que quieres visualizar, realmente la paginación la realiza el servidor, del lado de ExtJS solo se mandan a llamar las paginas correspondientes.

    Saludos
  • Vote Up0Vote Down checa_f1checa_f1 February 9
    Posts: 1
    Hola Crysfel!!!, gracias por responder. Entiendo lo que me decis pero ahora mi gran duda es como poder manejar esto ya que yo tomo los datos de un simple archivo xml. Se puede hacer la paginación tomando todos los datos desde un archivo xml...?
  • Vote Up0Vote Down CrysfelCrysfel February 9
    Posts: 897
    Pues... podrías hacerlo con PHP, los metes en un arreglo y luego vas enviando los que correspondan, aunque si son muchos registros gastarías recursos, igual y podrías paginar en memoria directamente en el cliente.

    Saludos

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Login with Facebook Sign In with Twitter

Sign In Apply for Membership

In this Discussion

Poll

No poll attached to this discussion.