2011-11-20 4 views
4

저장소의 pageSize를 1로 제한하려고합니다. 그리드에 10 개의 항목이 있고 페이지 메커니즘이 10 개 중 1 개, 10 개 중 2 개가 올바르게 표시되지만 그리드는 여전히 10 개의 모든 항목을 표시합니다. 또한 json에서 "total"속성을 1로 반환하려고 시도했지만 여전히 작동하지 않습니다. 어떤 아이디어?ExtJS4 - Grid Store pageSize

설명서의 예제는 소스 코드를 보여 주지만 실시간 미리보기가 비어 있기 때문에별로 도움이되지 않습니다.

 var photos = new Ext.data.Store({ 
      model: 'Photos', 
      autoLoad: true, 
      pageSize: 1 
     }); 

     var photosGrid = Ext.create('Ext.grid.Panel', { 
      id: 'PhotoGrid', 
      store: photos, 
      columns: [ 
         { text: "Filename", width: 200, dataIndex: 'filename' } 
        ], 
      dockedItems: [{ 
       xtype: 'pagingtoolbar', 
       store: photos, 
       dock: 'bottom', 
       displayInfo: true 
      }], 
      region: 'center', 
      border: 0, 
      overCls: 'row-pointer' 
     }); 

답변

1

헤이, 당신은 아마 당신의 JSON에 10 개 개의 항목을 반환하는 당신의 문제가되어, 페이징은, 모든 페이징 등 특정 매개 변수를 사용하여 저장소에서로드를 호출하고있는 자신을 구현해야 백업 한도 및 페이지 시작 색인 한 번에 하나의 항목을 보내려면 백엔드에서이 매개 변수를 사용해야합니다. Chers mate.

편집

//this is the model we will be using in the store 
Ext.define('Page', { 
    extend: 'Ext.data.Model', 
    fields: [ 
     {name: 'id', type: 'int'}, 
    ] 
}); 

var data = null; 
var store = null; 
Ext.Ajax.request({ 
    url: 'someurl', 
    success: function(result){ 
     data = Ext.decode(result.responseText); 
     store = Ext.create('Ext.data.Store', { 
      autoLoad: true, 
      model: 'Page', 
      pageSize: 1, 
      data : data, 
      proxy: { 
       type: 'memory', 
       reader: { 
        type: 'json', 
        root: 'pages'//this has to be as the root from your json 
       } 
      } 
     }); 
    } 
}); 
+0

멋진 것은 아닙니다. 제가 원했던 것은 문서를 집어 페이지로 나눠서 이미지로 저장 한 다음 그리드를 사용하여 한 번에 하나씩이 이미지를 탐색 할 수있게하는 것이 었습니다. 가게와 함께 이것을 사용하는 방법에 대한 아이디어? 저장소가 메모리에 있어야하고이 저장소에서 한 번에 하나의 이미지를 가져와야하는 것과 같습니다. – fes

+0

메모리 프록시를 사용해야하는 것처럼 들리지만 개인적으로 사용하지는 않았지만 복잡하지는 않습니다. 변수에 데이터를 보관하고 저장소에서 프록시를 사용하여 데이터를 가져옵니다. . http://docs.sencha.com/ext-js/4-0/#!/api/Ext.data.proxy.Memory – nscrob

+0

메모리 저장소를 사용해도 pageSize와 동일한 문제가 발생할 것이라고 생각합니다. 나는 json을 메모리에 저장하는 방법에 대해서는 아직 확신이 없으며 한 번에 하나씩 만 얻습니다. 메모리 저장소에는 모든 항목이 포함되지만 저장소에 제한 또는 페이지 크기를 넣으면 한 번에 하나의 항목 만 json에 저장하므로 용도를 잃을 수 있습니다. 이 작업을 볼 수없는 다른 접근 방식을 생각해야합니다. 건배. – fes

0

그것은 JSON 포맷 스크립트 쿼리의 문제입니다. pageSize와 함께 extjs를 사용하면 매개 변수 (page & limit)를 사용하여 쿼리를 보냅니다. 서버 측 스크립트에 존재하는 스크립트가 있는지 확인해야합니다. 그렇다면 limit 절 (또는 다른 데이터베이스의 해당 항목)을 추가하도록 쿼리를 변경해야합니다.