2015-10-01 3 views
0

Я пытаюсь создать таблицу с разбиением на страницы, и кажется, что это нужно сделать с помощью Ext.data.Store. Поэтому я создать следующим образом:Как создать разбивку на страницы на Sencha Ext.data.Store?

/* 
    createStore - setup an ExtJS dataStore and populate it using the view's collection 
    @param n/a 
    @return object store 
    */ 
    createStore: function() { 
     var _this = this; 
     if (!this.store) { 
      this.store = Ext.create('Ext.data.Store', { 
       pageSize: 3, 
       data: _this.collection.toJSON() 
      }); 
     } 
     return this.store; 
    }, 

collention передается, как данные (_this.collection.toJSON()) заключается в следующем:

[ 
     { 
     "id": 1, 
     "value": 12.34, 
     "currency": "eur", 
     "expirationDate": "Mon Jul 27 2016 12:01:11 GMT+0100 (WEST)", 
     "vendor": "banana", 
     "activationCode": 1234567890 
     }, 
     { 
     "id": 2, 
     "value": 12.34, 
     "currency": "eur", 
     "expirationDate": "Mon Jul 27 2016 12:01:11 GMT+0100 (WEST)", 
     "vendor": "banana", 
     "activationCode": 1234567890 
     }, 
     { 
     "id": 3, 
     "value": 12.34, 
     "currency": "eur", 
     "expirationDate": "Mon Jul 27 2016 12:01:11 GMT+0100 (WEST)", 
     "vendor": "banana", 
     "activationCode": 1234567890 
     }, 
     { 
     "id": 4, 
     "value": 12.34, 
     "currency": "eur", 
     "expirationDate": "Mon Jul 27 2016 12:01:11 GMT+0100 (WEST)", 
     "vendor": "banana", 
     "activationCode": 1234567890 
     }, 
     { 
     "id": 5, 
     "value": 12.34, 
     "currency": "eur", 
     "expirationDate": "Mon Jul 27 2016 12:01:11 GMT+0100 (WEST)", 
     "vendor": "banana", 
     "activationCode": 1234567890 
     }, 
     { 
     "id": 6, 
     "value": 12.34, 
     "currency": "eur", 
     "expirationDate": "Mon Jul 27 2016 12:01:11 GMT+0100 (WEST)", 
     "vendor": "banana", 
     "activationCode": 1234567890 
     }, 
     { 
     "id": 7, 
     "value": 12.34, 
     "currency": "eur", 
     "expirationDate": "Mon Jul 27 2016 12:01:11 GMT+0100 (WEST)", 
     "vendor": "banana", 
     "activationCode": 1234567890 
     }, 
     { 
     "id": 8, 
     "value": 12.34, 
     "currency": "eur", 
     "expirationDate": "Mon Jul 27 2016 12:01:11 GMT+0100 (WEST)", 
     "vendor": "banana", 
     "activationCode": 1234567890 
     }, 
     { 
     "id": 9, 
     "value": 12.34, 
     "currency": "eur", 
     "expirationDate": "Mon Jul 27 2016 12:01:11 GMT+0100 (WEST)", 
     "vendor": "banana", 
     "activationCode": 1234567890 
     }, 
     { 
     "id": 10, 
     "value": 12.34, 
     "currency": "eur", 
     "expirationDate": "Mon Jul 27 2016 12:01:11 GMT+0100 (WEST)", 
     "vendor": "banana", 
     "activationCode": 1234567890 
     }, 
     { 
     "id": 11, 
     "value": 12.34, 
     "currency": "eur", 
     "expirationDate": "Mon Jul 27 2016 12:01:11 GMT+0100 (WEST)", 
     "vendor": "banana", 
     "activationCode": 1234567890 
     }, 
     { 
     "id": 12, 
     "value": 12.34, 
     "currency": "eur", 
     "expirationDate": "Mon Jul 27 2016 12:01:11 GMT+0100 (WEST)", 
     "vendor": "banana", 
     "activationCode": 1234567890 
     }, 
     { 
     "id": 13, 
     "value": 12.34, 
     "currency": "eur", 
     "expirationDate": "Mon Jul 27 2016 12:01:11 GMT+0100 (WEST)", 
     "vendor": "banana", 
     "activationCode": 1234567890 
     }, 
     { 
     "id": 14, 
     "value": 12.34, 
     "currency": "eur", 
     "expirationDate": "Mon Jul 27 2016 12:01:11 GMT+0100 (WEST)", 
     "vendor": "banana", 
     "activationCode": 1234567890 
     }, 
     { 
     "id": 15, 
     "value": 12.34, 
     "currency": "eur", 
     "expirationDate": "Mon Jul 27 2016 12:01:11 GMT+0100 (WEST)", 
     "vendor": "banana", 
     "activationCode": 1234567890 
     }, 
     { 
     "id": 16, 
     "value": 12.34, 
     "currency": "eur", 
     "expirationDate": "Mon Jul 27 2016 12:01:11 GMT+0100 (WEST)", 
     "vendor": "banana", 
     "activationCode": 1234567890 
     }, 
     { 
     "id": 17, 
     "value": 12.34, 
     "currency": "eur", 
     "expirationDate": "Mon Jul 27 2016 12:01:11 GMT+0100 (WEST)", 
     "vendor": "banana", 
     "activationCode": 1234567890 
     }, 
     { 
     "id": 18, 
     "value": 12.34, 
     "currency": "eur", 
     "expirationDate": "Mon Jul 27 2016 12:01:11 GMT+0100 (WEST)", 
     "vendor": "banana", 
     "activationCode": 1234567890 
     }, 
     { 
     "id": 19, 
     "value": 12.34, 
     "currency": "eur", 
     "expirationDate": "Mon Jul 27 2016 12:01:11 GMT+0100 (WEST)", 
     "vendor": "banana", 
     "activationCode": 1234567890 
     }, 
     { 
     "id": 20, 
     "value": 12.34, 
     "currency": "eur", 
     "expirationDate": "Mon Jul 27 2016 12:01:11 GMT+0100 (WEST)", 
     "vendor": "banana", 
     "activationCode": 1234567890 
     }, 
     { 
     "id": 21, 
     "value": 12.34, 
     "currency": "eur", 
     "expirationDate": "Mon Jul 27 2016 12:01:11 GMT+0100 (WEST)", 
     "vendor": "banana", 
     "activationCode": 1234567890 
     } 
    ] 

Однако в конечном итоге таблица ExtJS не ограничивает результат только 3 результатами на страницу.

enter image description here

Я искал the documentation и гугле много, и я не пришел в никуда. Я также видел людей, использующих опцию proxy для получения данных и для внесения изменений в сервер, чтобы сделать поддержку страницы страницей.

Я не могу этого сделать, данные, которые я получаю, поступают таким образом, и так будет до конца, потому что я не могу изменить сервер. Кроме того, ошибочно, чтобы изменить логику сервера backend из-за деталей интерфейса GUI.

Что я могу сделать? Это должно быть прямо. Объект Store имеет все данные, которые ему нужно отображать, просто нужно разбить его на страницы, что не является чем-то из этого мира, если единственный способ сделать это - это изменить сервер, а затем я не знаю ...

ответ

1

Hi, На самом деле Extjs не занимается поисковой системой, вы должны заботиться о частях данных самостоятельно.

http://docs.sencha.com/extjs/6.0/6.0.1-classic/#!/api/Ext.toolbar.Paging

поискового вызова, как правило, обрабатываются на стороне сервера (см исключение ниже). Клиент отправляет параметры на серверную сторону, которые сервер должен интерпретировать, а затем отвечать соответствующими данными.

Существует также пейджинга с локальными данными секции, но, похоже, что-то старое.

Лучшей практикой будет наличие некоторой серверной части, которая будет генерировать части данных на основе предоставленных параметров.

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

  • Нет связанных вопросов^_^