Динамические поля и колонки в гриде

13 views
Skip to first unread message

Zord

unread,
Sep 1, 2011, 11:22:39 AM9/1/11
to ruextjs
Всем привет!
Столкнулся с неведомой проблемой, динамически изменяя структуру грида
(

Итак, что мы имеем:

Есть EditorGrid, который получает данные с помощью JSON:
store: new Ext.data.Store({
autoSave: true,
proxy: new Ext.data.HttpProxy({
api: {
read : 'lures',
create: 'lures/add',
update: 'lures/update',
destroy: 'lures/delete'
}
}),
reader: new Ext.data.JsonReader({
root: 'data',
fields: [
{name: 'id', type: 'int'}
]
}),
writer: new Ext.data.JsonWriter({
encode: true,
writeAllFields: false
})
})

При получении данных я шлю стору "магическую" metaData`у, которая
сообщает стору, что конфигурация стора изменилась. Там же я посылаю
массив колонок, из которых создаю ColumnModel.
После этого я делаю гриду reconfigure:

var columns = store.reader.jsonData.columns;
var cm = new Ext.grid.ColumnModel(columns);
this.reconfigure(store, cm);

Все отрабатывает на ура, конфиг грида изменяется, добавляются новые
колонки, выводятся правильные данные.

Проблема возникает, когда я пытаюсь данные изменить. Изменяю любое
поле - вместо update запроса почему-то идет запрос на создание записи
(create). При попытке удалить запись вообще никаких запросов на сервер
не идет. Понятно, что что-то случилось со стором, но в FireBug ничего
подозрительного найти не удалось (

Вот прошу у вас помощи. Возможно, кто-нибудь из вас с таким
сталкивался.

Спасибо

bvh

unread,
Sep 1, 2011, 3:41:38 PM9/1/11
to ruextjs
Могу ошибаться, но попробуйте ридеру прописать idField

Zord

unread,
Sep 2, 2011, 4:50:25 AM9/2/11
to ruextjs
Прописал, хотя особого смысла в этом не было - там по умолчанию
значение выставляется
В любом случае - не помогло (

Zord

unread,
Sep 2, 2011, 5:41:33 PM9/2/11
to ruextjs
Проблема решена!
Нужно было отдавать idProperty в metaData.

Zord

unread,
Sep 6, 2011, 4:29:12 AM9/6/11
to ruextjs
Дополнительный вопрос по той же теме:

Я отдаю настройки колонок в виде массива. И вот тут возникает такая
проблема: рендерер, который я отдаю, мне приходится указывать строкой.
И при создании ColumnModel он не отрабатывает. Есть какие-нибудь
мысли, как решить проблему с рендерерами?

Reply all
Reply to author
Forward
0 new messages