
В
ExtJs есть интересные объект Ext.state.Manager, который позволяет запоминать состояние объектов типа
Ext.Component. Но для того, что бы
Ext.form.Combobox сохранял состояние надо задать некоторые функции в конфиг.
stateful: true,
stateEvents: ['select'],
getState: function() {
return {checked: this.getValue()}
},
applyState: function(state) {
this.setValue(state.checked);
}
stateful - включаем сохраннение состояний
stateEvents - задаём массив событий, по завершению которых, нужно сохранять состояние объекта
getState, applyState - что делать с объектом, при получении состояния и при инициализаии объекта из данных.

Есть такой компонент в библиотеке. Но вот проблема, он "забывает" сортировку в Ext.grid.GridPanel. Сейчас я покажу как его легко и просто от этого отчуить. А если у нас ещё есть и фильтрация на стороне сервера, эти данные он тоже будет помнить как и сам grid.
Ext.PagingToolbar.prototype.doLoad = function(start){
var o = {}, pn = this.paramNames;
o[pn.start] = start;
o[pn.limit] = this.pageSize;
if(this.fireEvent('beforechange', this, o) !== false){
o = Ext.apply(this.store.lastOptions.params, o);
this.store.load({params:o});
}
};
Всего-то переопределили функцию загрузки данных, добавив "o = Ext.apply(this.store.lastOptions.params, o);" вот эту строчку. Эта функция выполняется при любом действиее на toolbar-е.
Куда разместить это код?
- Сразу же после загрузки библиотеки.