2013-11-04 3 views
4

웹 서비스를 통해 데이터를받는 그리드 패널에 대한 클라이언트 측 페이지 매김을 원하지만이 방법을 잘 모르겠습니다.ExtJS 4.2 그리드 페이지 매김

이것은 지금까지 제 코드입니다. 페이징 도구 모음에 올바른 페이지 수가 표시되지만 모든 결과가 첫 페이지에 표시됩니다. 페이지에서 앞뒤로 이동해도 아무런 차이가 없습니다.

모델

Ext.define('MCS.model.task.myModel', { 
extend: 'Ext.data.Model', 
fields: 
[ 
    { name: 'Case_ID', type : 'Auto' }, 
    { name: 'BP_Name', type : 'Auto' }, 
    { name: 'Project', type : 'Auto' } 
], 

proxy: 
{ 
    type: 'ajax', 
    url: '/Service/Task?type=mytasks', 
    reader: 
    { 
     type: 'json', 
     root: 'data' 
    }, 
}, 
}); 

스토어

Ext.define('MCS.store.task.myStore', { 
extend: 'Ext.data.Store', 
requires: 'MCS.model.task.myModel', 
model: 'MCS.model.task.myModel', 

pageSize : 10, 

autoLoad: true 
}); 

GridPanel

Ext.define('MCS.view.task.myGrid', { 
extend: 'Ext.grid.Panel', 
alias: 'widget.myGrid', 

store: 'task.myStore', 
columns: [], 

dockedItems: 
[ 
    { xtype: 'myToolbar', 
     dock: 'top', 
    }, 
    { xtype: 'pagingtoolbar', 
     dock: 'bottom', 
     displayMsg: '{0} - {1} of {2}', 
     emptyMsg: 'No data to display', 
     store: 'task.myStore' 
    } 
], 

initComponent: function() 
{ 
    this.columns = 
    [ 
     { text: 'Case ID', dataIndex: 'Case_ID' }, 
     { text: 'Business Partner Name', dataIndex: 'BP_Name' }, 
     { text: 'Project', dataIndex: 'Project' } 
    ]; 

    this.callParent(); 
} 
}); 
+0

이 정보는 도움이 될 수 있습니다. 수락 된 답변을 참조하십시오. http://stackoverflow.com/questions/42650224/pagesize-not-working-on-grid-in-extjs –

답변

0

내가 페이징 로컬 데이터와 개인적인 경험을 가지고 있지 않지만, 페이징 도구 모음의 내선 워드 프로세서 몇 가지가 있습니다 유용한 정보 및 링크를 찾을 수 있습니다.

http://docs.sencha.com/extjs/4.2.0/#!/api/Ext.toolbar.Paging

내가 언급하고있는 부분을 찾아 "로컬 데이터와 페이징"의 페이지를 검색 할 수 있습니다. 해당 섹션 바로 아래에는 설명 링크가 있습니다. 주석을 클릭하여 주석을 읽으십시오.

다소 도움이 되었기를 바랍니다. 행운을 빕니다!

0
Ext.define('Crm.store.Companies', { 
    extend: 'Ext.data.Store', 
    requires: 'Crm.model.Company', 
    model: 'Crm.model.Company', 
    autoLoad: {start: 0, limit: 5}, 
    pageSize: 5, 
    remoteSort: true, 
    sorters: [{ 
       property : 'name', 
       direction: 'asc' 
      }], 
    proxy: { 
    type: 'rest', 
    url : 'service/companyList/json', 
    reader: { 
     type: 'json', 
     root: 'companyList', 
     totalProperty: 'total' 
    } 
    } 
}); 
-1

Code Link

Ext.define('School.model.Student', 
{ 
    extend : 'Ext.data.Model', 
    idProperty : 'Id', 
    fields: [ 
     { name: 'Id', type: 'int', defaultValue: 0 }, 
     { name: 'firstName', type: 'string' }, 
     { name: 'middleName', type: 'string' }, 
     { name: 'lastName', type: 'string' }, 
     { name: 'birthDate', type: 'date' }, 
     { name: 'address1', type: 'string' }, 
     { name: 'address2', type: 'string' }, 
     { name: 'city', type: 'string' }, 
     { name: 'state', type: 'string' } 
    ], 
    validations : [{ 
     type : 'presence', 
     field : 'firstName' 
    }], 
    proxy : 
    { 
     type : 'ajax', 

     api : 
     { 
      read: '/ExampleService.svc/studentswithpaging/' 
     }, 
     reader : 
     { 
      type : 'json', 
      root : 'Students', 
      totalProperty : 'TotalCount' 
     } 

    } 
}); 
0

음이 늦게, 그러나 항상 서버 측 페이징을 처리하는 보장하기 위해 조금, 페이징 도구 모음이 스크립트에 시작과 한계 매개 변수를 보낼 수 있습니다 ; 따라서 스크립트는 이러한 매개 변수를 기반으로 데이터를 가져와야합니다.

<?php 
    $start = $_GET['start']; 
    $limit = $_GET['limit']; 
    $sql = "SELECT * FROM table limit $start,$limit; 
?> 
관련 문제