Extjs: Как предотвратить флажокМодель от изменений в изменении строк на странице PagingToolbar?

StackOverflow https://stackoverflow.com//questions/12700101

  •  12-12-2019
  •  | 
  •  

Вопрос

Почему делает checkboxmodel Отмените выбор всех выбранных строк на странице Изменение при использовании пейджинг Панель инструментов ? Как я могу остановить изменение рядов на изменение страницы?

Я вижу, что есть pruneremured, который можно использовать для предотвращения обрезки узлов, я установил его на false, но отказоустойчивость все еще уволена. Не уверен, что еще попробовать.

Я предполагаю, что регистрации CheckBoxModel с магазином или, может быть, PagingToolbar, который будет уведомлен, когда магазин меняется ... Тогда отмените его? Почему? Мне нужно предотвратить это.

Редактировать: Причина, по которой я не хочу, чтобы уволить деселект, это; Я прикрепил обработчик на выборе и отмените выбор. Выберите Adds Rows в другую сетку, SELECT удаляет их. Таким образом, когда пользователь проверяет флажок, этот строк добавляется в другую сетку, когда они снимают его, она удаляется из этой сетки. Сеткой, увольняющейся деселект, когда магазин меняется, я теряю все свои спасенные строки в другой сетке.

Это было полезно?

Решение

Я не уверен, что это правильный способ сделать это, но он работает для меня.

Что я сделал, было создать свой собственный ext.grid.view.Я расширил ext.view.table и переполненной дорогой методом Onmaskbeforeshow.Это метод, который вызывал отмените выбор всех на модели выбора решеток.Как вы можете видеть, я прокомментировал его здесь

Ext.define('Ext.grid.SteveView', {
    extend: 'Ext.view.Table',
    alias: 'widget.stevegridview',

    onMaskBeforeShow: function(){
        var me = this,
            loadingHeight = me.loadingHeight;

        //me.getSelectionModel().deselectAll();
        me.all.clear();
        if (loadingHeight && loadingHeight > me.getHeight()) {
            me.hasLoadingHeight = true;
            me.oldMinHeight = me.minHeight;
            me.minHeight = loadingHeight;
            me.updateLayout();
        }
    }
});
.

включают вышеупомянутый скрипт, затем, когда вы создаете сетку, измените ViewType в SteveGridView, или что вы решите назвать его

    {
        xtype: 'grid', 
        viewType:'stevegridview',
        store:'some store'
        ...
    }
.

Новый тип просмотра будет использоваться, будет называться новая onmaskbeforeshow ().

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top