Меня немного смущает следующая документация для EditorGrid :
Редактирование производится по значению
поле, указанное в столбце
dataIndex в бэк-магазине (так что если
вы используете рендерер для того, чтобы
отображать преобразованные данные, это должно быть
приходится)
Я не совсем уверен, как "учесть" мой рендерер в следующей ситуации:
...
columns : [{
header : 'Foo',
width : 100,
dataIndex: 'foo',
renderer: function(value, p, record) {return value? value.bar: ""},
editor : new Ext.form.TextField({
allowBlank : false
})
}]
...
Как вы можете видеть, этот рендерер действительно простой, но он явно не будет работать с TextField. Я понимаю, почему при редактировании пользователь просто отображает мой объект foo, а не свойство bar.
Так как же обойти это? Должен ли я перезаписывать Ext.form.TextField
новыми setValue
и getValue
? Я думал об использовании событий beforeedit
и afteredit
, но это кажется излишним. Я чувствую, что здесь что-то очень простое.
Если мне неясно, вот несколько скриншотов с полученным результатом:
Работает рендерер колонок!
Ext.form.TextField получает объект