2012-12-04 2 views
2

J'ai une zone de liste déroulante avec un magasin d'obtenir des données à partir d'un serveur via la télécommande. Mon problème est que ma pagination ne fonctionne pas. Voici un extrait de mon code:EXTJS Remote Combobox

Ext.define('EmployeeModel', { 
    extend: 'Ext.data.Model', 
    fields: [ 
     {name:'id', type:'int'}, 
     {name:'fullname', type:'string'} 
    ] 
    }); 

    // remote store 
    var employeeStore= new Ext.data.Store(
    { 
    model: 'EmployeeModel', 
    pageSize: 10, 
    proxy: { 
     url: '/schedule/home/EmployeeList', 
     params: { 
      'active_id': params 
     }, 
     type: 'ajax', 
     autoLoad: true, 
     reader: 
     { 
      root: 'data', 
      totalProperty: 'total', 
      id: 'id', 
      type: 'json' 
     }, 
     simpleSortMode: true 
    } 
    }); 



    this.employeeBox = new Ext.form.ComboBox(
    { 
    store: employeeStore, 
    displayField: 'fullname', 
    valueField: 'id', 
    typeAhead: false, 
    loadingText: 'Searching...', 
    triggerAction: 'all', 
    hiddenName: 'employee', 
    name: 'Employee Name', 
    fieldLabel: 'Employee', 
    selectOnFocus: true, 
    allowBlank: false, 
    anchor: '98%', 
    width: 370, 
    enableKeyEvents: true, 
    pageSize: true, 
    minListWidth: 220, 
    minChars: 2, 
    labelWidth: this.labelWidth, 
    resizable: false 
    }); 

Je ne sais pas ce qui manque, mais aussi loin que je l'ai recherché par Internet je copiais et tout testé, encore il ne fonctionne pas.

Répondre

1

Si vous avez un stockage à distance, la radiomessagerie doit également être distante. pageSize est seul paramètre qui est envoyé au serveur, où vous devez gérer la pagination. À côté de pageSize, vous verrez également des paramètres comme start et limit.

Vous pouvez voir exemple ici: http://docs.sencha.com/ext-js/4-1/#!/example/form/forum-search.html Découvrez les demandes en Firebug ou quelque chose de similaire, vous verrez URL comme ceci: http://www.sencha.com/forum/topics-remote.php?_dc=1354611968514&query=form&page=2&start=10&limit=10&callback=Ext.data.JsonP.callback3

Si vous voulez avoir la pagination sur le côté client, vous pouvez créer magasin et pré-charge des données via une requête AJAX personnalisée. Comme ce que j'ai observé, il a chargé le résultat mais pas paginé

+0

Dans mon URL indiqué ci-dessus, il provient d'un fichier php qui retourne un tableau "json_encode" -ed à partir d'une requête. Quelle est ma requête qui obtient les caractères à chaque pression de touche. Y at-il quelque chose que je devrais dans ma requête? BTW J'utilise symfony 1.4 – oneofakind

+0

'http: // www.sencha.com/forum/topics-remote.php' est certainement paginée - voir [ce lien] (http://www.picamatic.com/view/8854690_Untitled/) si vous ne croyez pas :) Je ne connais pas la symphonie, donc je ne vous dirai pas comment le faire. Généralement, la pagination à distance est effectuée dans une requête SQL. – Krzysztof