2012-09-19 2 views
0

Я создаю разбивку на страницы в extjs 3.1 , но почему-то это не работает. Пожалуйста, что я делаю неправильно. сделана страница счет = 5. Подсчет очков отображается правильно. Он показывает, что количество страниц внизу идет.Создание страницы не работает

Но сетка показывает все данные. Мой код, как следовать

Ext.onReady(function() { 

    var store = new Ext.data.JsonStore({ 
     root : 'data', 
     totalProperty : 'total', 
     idProperty : 'facId', 
     fields : [ "address1", "address2", "city", "country", "ehsContact", 
       "facilityManager", "facilityProduct", "facilityType", "fax", 
       "facId", "name", "phone", "state", "subGroupA", "subGroupB", 
       "zipCode", { 
        name : 'businessUnitId', 
        mapping : 'businessVO.businessId' 
       }, { 
        name : 'businessUnitName', 
        mapping : 'businessVO.businessName' 
       } ], 

     proxy : new Ext.data.HttpProxy({ 
      url : 'facility.do?method=getAllFacility' 
     }) 
    }); 

    var grid = new Ext.grid.GridPanel({ 
     width : 700, 
     height : 500, 
     title : 'ExtJS.com - Browse Forums', 
     store : store, 
     trackMouseOver : false, 
     disableSelection : true, 
     loadMask : true, 

     columns : [ { 
      id : 'facId', 
      header : "facId", 
      dataIndex : 'facId', 
      sortable : true 
     }, { 
      header : "fax", 
      dataIndex : 'fax', 
      width : 100, 
      sortable : true 
     }, { 
      header : "state", 
      dataIndex : 'state', 
      sortable : true 
     }, { 
      id : 'address1', 
      header : "address1", 
      dataIndex : 'address1', 
      sortable : true 
     } ], 

     viewConfig : { 
      forceFit : true, 
     }, 

     bbar : new Ext.PagingToolbar({ 
      pageSize : 5, 
      store : store, 
      displayInfo : true, 
      displayMsg : 'Displaying topics {0} - {1} of {2}', 
      emptyMsg : "No topics to display" 
     }) 
    }); 

    store.load({ 
     params : { 
      start : 0, 
      limit : 5 
     } 
    }); 

    centerPanel = Ext.getCmp('centerlPanel'); 
    centerPanel.add({ 
     layout : 'border', 
     region : 'center', 
     layout : 'fit', 
     items : grid 
    }); 
    centerPanel.doLayout(); 
}); 

ответ

1

ExtJS3 изначально поддерживает только пролистывание (так что вы должны справиться с этим на стороне сервера). Параметр AFAIK pageSize используется только для подсчета количества страниц, текущей страницы и как один из аргументов для запроса (чтобы вы могли получить его значение на сервере). Если вы обслуживаете более 5 строк с сервера - все будет видно.

Вы можете это исправить путем реализации подкачки на сервере или с помощью PagingStore (здесь приведен пример решения для этого второго подхода: http://www.sencha.com/forum/showthread.php?71532-Ext.ux.data.PagingStore-v0.5)

+0

Есть ли способ использовать memorypagination? потому что для каждого следующего пункта, идущего на сервер, будет дорогостоящим? – user1168826

+0

Я не хочу сервер каждый раз, например, datatable доступен в jquery, есть ли что-то подобное в extjs – user1168826

2

Я всегда находил с PAGINATION (с помощью JSON/PHP/MySQL), что у меня есть чтобы вернуть общее число, а затем заставить мои запросы к базе данных иметь ограничение на них. Это и есть параметры начала и предела.

store.load({ 
    params : { 
     start : 0, 
     limit : 5 
    } 
}); 

Затем запрос к базе данных будет

 $start = (integer) (isset($_POST['start']) ? $_POST['start'] : $_GET['start']); 
     $end = (integer) (isset($_POST['limit']) ? $_POST['limit'] : $_GET['limit']); 
$limitquery = $query." LIMIT ".$start.",".$end; 

(это для PHP/MySQL) Затем страница отправляет соответствующее начало/конец, чтобы пройти через ваши данные. Затем сервер/база данных сортирует ваше возвращение. Если вы хотите использовать как базу данных на стороне клиента, вам все равно нужно найти способ сделать этот метод. Если вы беспокоитесь о рабочей нагрузке, которая будет помещена на ваши серверы, я обнаружил, что это очень небольшая рабочая нагрузка на нашу базу данных MySQL с использованием метода LIMIT.

Смежные вопросы