Bezdepbonusu7Программирование: статьи и ответы

Вопрос

ExtJS 4 - Как отключить значки "следующий" и "последний" на панели инструментов подкачки, когда в сетке нет записей?

Автор вопроса: netempОтветов: 2

введите здесь описание изображения

У меня есть сетка с панелью инструментов подкачки внизу и кнопкой "Загрузить" вверху, которую можно использовать для загрузки записей в сетку.

Таким образом, изначально в сетке нет значений, но и в этом случае на панели инструментов постраничного просмотра отображается Страница 1 из 1, а также активируются значки для перехода на "следующую" или "последнюю" страницу.

Из-за этого, когда пользователь щелкает любой из этих значков, тогда, хотя записи не загружаются, но внутри значения "страница" и "начало" устанавливаются как NaN, и если затем пользователь нажимает кнопку "Загрузить", тогда эти значения NaN передать на сервер, что не является ожидаемым.

То есть в идеале он должен передавать page=0&start=0, тогда как он передает page=NaN&start=NaN. Сервер не распознает эти значения и выдает ошибку.

Одним из быстрых решений для этого является модификация кода на стороне сервера, но в настоящее время это выходит за рамки нашей командной работы, и поэтому мне было интересно, как можно добиться следующего:

В) Как отключить значки "следующий", "последний" на панели инструментов постраничного просмотра, когда в сетке нет записей?

Or,

В) Как изменить значения переменных "page" и "start" перед загрузкой магазина, чтобы мы могли передавать 0 вместо NaN?

Я попытался получить доступ к этим параметрам в событии предварительной загрузки хранилища сетки, но там я смог найти такие свойства, как startParam или pageParam, отображающие имя параметра, но не смог найти какой-либо метод доступа/изменения этих значений.

У кого-нибудь есть идеи по этому поводу?

Заранее спасибо.

PS: используется версия ExtJS 4.

storegridpagingextjsextjs4

Ответы

Ответ 1 · рейтинг 2 · Molecular Man

Одним из возможных решений может быть использование

store.loadPage(1);

вместо store.load();.

Второе возможное решение - изначально отключить панель инструментов и включить ее при загрузке данных:

var grid = Ext.create('Ext.grid.Panel', {
    // ...
    store: store,
    dockedItems: [{
        xtype: 'pagingtoolbar',
        store: store,
        dock: 'bottom',
        disabled: true
    }]
});
store.on('load', function(){
  grid.down('pagingtoolbar').enable();
});

Ответ 2 · рейтинг 1 · shashu

проверьте общий счет в ответ, если он не возвращает ноль, когда ваша сетка пуста, тогда будут возникать такие ошибки.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы