Extjs Pagination tool отключается, когда наш сервисный вызов возвращает пустые данные - PullRequest
0 голосов
/ 21 сентября 2018

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

У нас есть некоторые требования, например, у нас есть кнопка фильтра, позволяющая сначала показать отфильтрованные данные иостальные страницы как пустые.Общее количество будет таким же.

Пример :

Если у нас всего 1000 записей, а размер страницы 50, то у нас общий размер страниц будет 20. Если мы включим фильтр, то мыполучит 500 записей, которые будут отфильтрованы, затем в этом случае мы покажем итоговые записи как 1000 (фактический размер без фильтра), а с 11 страницы мы будем показывать пустые страницы, возвращая пустые записи.

Issue :

Когда мы возвращаем пустые записи в Extjs, это отключает разбиение на страницы, мы хотим, чтобы «следующая страница» была отключена, но нам нужна кнопка «предыдущая страница», которая должна быть включена

Возможно ли это в Extjs?

У вас есть идеи, почему он отключает панель инструментов разбивки на страницы?

image

1 Ответ

0 голосов
/ 21 сентября 2018

Итак, это FIDDLE

SERVER: я использую какой-то бесплатный сервис для загрузки данных, где у меня есть 10 записей (5 настраница), но я посылаю total: 15 с сервера, чтобы заставить панель инструментов отображать 3 страницы.На сервере, в запросе page === 3 я отправляю пустой массив.Вот CODE

CLIENT: На панели инструментов разбивки на страницы я определяю change прослушиватель событий, где я удостоверяюсь, что кнопки всегда будут включены.Также сделайте ввод для номера страницы, включен + правильный, с общим счетчиком страниц.

listeners: {
    change: function (cmp, config) {
       var store = cmp.up('grid').getStore();

       var numb = cmp.getComponent('inputItem');
       numb.setDisabled(false);
       numb.setValue(store.currentPage);

       var text = cmp.getComponent('afterTextItem');
       text.setHtml('of ' + (store.totalCount / store.pageSize));

       cmp.setChildDisabled('#first', false);
       cmp.setChildDisabled('#prev', false);
       cmp.setChildDisabled('#next', false);
       cmp.setChildDisabled('#last', false);
       cmp.setChildDisabled('#refresh', false);
   }
}
...