2011-12-07 39 views
2

我在extjs4上有一個商店,它返回一個對象列表,並且我想設置閱讀器屬性能夠對這些元素進行計數,以便以後可以使用分頁。在extjs商店設置閱讀器

僅供參考,extjs使用的示例已經帶有count屬性(totalCount)和列出的對象類型(主題),而我的沒有它,只是列表。

供參考: example

而且,在我的代碼電網犯規認識每頁的結果的限制,但分頁工具欄的作用:

var sm = Ext.create('Ext.selection.CheckboxModel'); 

Ext.define('Cliente', { 
    extend: 'Ext.data.Model', 
    fields: [{ 
     name: 'ID', 
     type: 'int' 
    }, { 
     name: 'Nome', 
     type: 'string' 
    }, { 
     name: 'Email', 
     type: 'string' 
    }, { 
     name: 'RazaoSocial', 
     type: 'string' 
    }, { 
     name: 'TipoDeCliente', 
     type: 'string' 
    }], 
    idProperty: 'ID' 

}); 

var store = Ext.create('Ext.data.Store', { 
    pageSize: 3, 
    model: 'Cliente', 
    remoteSort: true, 
    proxy: { 
     type: 'ajax', 
     url: 'http://localhost:4904/Cliente/ObterClientes', 
     extraParams: { 
      nome: '', 
      tipopessoa: '', 
      email: '', 
      cpf: '', 
      estado: '', 
      cidade: '', 
      cep: '' 
     }, 
     reader: { 
      type: 'json', 
      root: 'data' 
     }, 
     simpleSortMode: true 
    }, 
    sorters: [{ 
     property: 'Email', 
     direction: 'DESC' 
    }] 
}); 

var pluginExpanded = true; 
var grid = Ext.create('Ext.grid.Panel', { 
    width: 500, 
    height: 250, 
    title: 'Array Grid', 
    store: store, 
    selModel: sm, 

    loadMask: true, 
    viewConfig: { 
     id: 'gv', 
     trackOver: false, 
     stripeRows: false 
    }, 
    columns: [{ 
     id: 'gridid', 
     text: "ID", 
     dataIndex: 'ID', 
     hidden: true 
    }, { 
     text: 'Nome', 
     width: 150, 
     sortable: true, 
     dataIndex: 'Nome' 
    }, { 
     text: 'Tipo de Cliente', 
     width: 100, 
     sortable: true, 
     dataIndex: 'TipoDeCliente' 
    }, { 
     text: 'Email', 
     width: 150, 
     sortable: true, 
     dataIndex: 'Email' 
    }], 
    bbar: Ext.create('Ext.PagingToolbar', { 
     store: store, 
     displayInfo: true, 
     displayMsg: 'Exibindo clientes {0} - {1} of {2}', 
     emptyMsg: "Nenhum cliente" 
    }), 
    renderTo: 'clientes', 
}); 

store.loadPage(1); 

回答

1

商店需要的總數來計算分頁參數並顯示總數。您的服務器端實現必須更改爲在您的數據中添加該計數。 也加載像這樣的數據store.load();而不是loadPage。

編輯:你也在這裏有一個額外的逗號:renderTo: 'clientes',我會建議通過JSLint運行你的代碼。

+0

謝謝DmitryB,但我發現另一種方式來解決我的問題: 我加入這條車道的存儲功能 自動加載:{開始:0,上限:3}, 然後我有我的方式獲得這兩個參數,並使用我列表上的「GetRange」來獲得所需的分頁 – Beoulve