Refresh Treepanel
Есть TreeStore для дерева.
В нём описаны Fields. У поля, которое displayField, есть convert. convert использует внешние данные для преобразования. Вопрос: как обновить дерево что бы Store остался прежним (то есть не долбился на сервак за обновлением), а только лишь сработал convert с новыми данными? |
листинг бы глянуть что вы написали..
попробуйте метод store.commitChanges(); вот ссылка на доки: http://docs.sencha.com/extjs/4.1.3/#...-commitChanges |
Цитата:
|
вот кусок кода. здесь описан сторе
var peremen = 'my Prefix'; var store = undefined; Ext.onReady(function(){ //------------------ store = Ext.create('Ext.data.Store', { fields: [ 'id', 'name', { name: 'firstName', convert: function(value, record) { return record.get('name') + peremen; } }], idProperty: 'id', remoteSort: true, proxy: { type: 'ajax', url: '/getStore', actionMethods: { read: 'POST' }, reader: { root: 'data', totalProperty: 'totalCount' } }, autoLoad: true, listeners: { load: { fn: function() { setTimeout(function() { if (store.count() > 0)//если записи есть console.log(store.getAt(0).data); //выводим объектом первую запись }, 1000); } } } }); //------------------ }); теперь посмотрите на функцию, которая выводит в консоль данные при загрузки объекта. смотрим в консоль.. и мы видим что 'firstName' реально существует. и если нужно данные обновить, то тут есть вариант перебрать всю стору циклом (например так): for(var i = 0; i < store.count(); i++) store.getAt(i).set('firstName', 'newValue'); а в конце сделать commitChange(); может и есть метод который будет передергивать конверт, но я пока его не нашел)) |
Цитата:
Цитата:
буду капать дальше, Спасибо! |
Часовой пояс GMT +3, время: 16:16. |