2011-12-07 3 views
2

extjs4에 객체 목록을 반환하는 상점이 있으며 나중에 페이징을 사용할 수 있도록 요소를 계산할 수 있도록 reader 속성을 설정하려고합니다.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

가게가 계산하는 총 수를 필요 페이징 매개 변수 및 합계를 표시합니다. 서버 측 구현을 변경하여 데이터에 해당 개수를 추가해야합니다. 또한 loadPage 대신 store.load();과 같은 데이터를로드하십시오.

EDIT : 여기에 여분의 쉼표도 있습니다. renderTo: 'clientes', JSLint를 통해 코드를 실행하는 것이 좋습니다.

+0

감사 DmitryB,하지만 난 내 문제를 해결하는 또 다른 방법을 찾을 : 내가 저장 기능 자동로드이 차선을 추가 을 : {시작 : 0, 제한 : 3} 내 방법이 두 가지를 수신 다음 내가했다 매개 변수를 사용하고 원하는 목록을 가져 오기 위해 "GetRange"를 사용했습니다. – Beoulve