Extjs: Как предотвратить флажокМодель от изменений в изменении строк на странице PagingToolbar?
Вопрос
Почему делает 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 ().