Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   Динамическое изменения записей в Ext.grid (https://javascript.ru/forum/extjs/75914-dinamicheskoe-izmeneniya-zapisejj-v-ext-grid.html)

potkin 16.11.2018 11:34

Динамическое изменения записей в Ext.grid
 
Добрый День!
Имею грид Ext.grid.Panel (а так же Model and Store)
Данные в Store загружаю с Сервера, все отлично отображается.
Задача:
Нужно при клике на Гриде динамически менять данные.
И тут сталкиваюсь с проблемой.
Если я какое-то поле меняю в "viewConfig":
viewConfig: {
 getRowClass: function (record, index) {
  record.data["Field1"] = "...";
 }
}

то это поле "потом" уже нельзя изменить.
те поля которые я НЕ менял в "viewConfig" меняются без проблем!

меняю так:
onGridX_itemclick: function (view, record, item, index, eventObj) {
    record.data["Field1"] = "Сменили"; //Не меняется (((
    record.data["Field2"] = "Сменили"; //А это меняется )))
    view.refresh();
},

Можно ли как-то решить данную проблему (то есть мне надо обязательно использовать изменение поля в "viewConfig")?!

potkin 16.11.2018 12:11

Использую ExtJS 6.2 GPL
Может у кого какие идеи будут?
Ну очень надо решить проблемку ..

siber-biber 16.11.2018 12:33

ничего не понятно из поста.
record.data["Field1"] = "Сменили"; //Не меняется (((
то есть если мы в следующей строке сделаем
console.log(record.data["Field1"])
то строка "Сменили" нам не выведется?

фидл есть?

ps без фидла могу сказать что обращение с данными идёт на низком уровне
record.data["Field1"] = "Сменили";
вы в тихую подменяете значение (вместо вызова record.set("Field1", "Сменили")) ..extjs этого сам не заметит пока к данным не полезет.
вот вам кстати и приходится самому рефреши дергать
view.refresh();
хотя возможно у вас всё так и задумано

potkin 16.11.2018 13:31

Цитата:

console.log(record.data["Field1"])
то строка "Сменили" нам не выведется?
Так точно!
Цитата:

фидл есть?
А что это?
Я юзаю много разного софта при разработке в Вебе, скорее всего есть, но название мне не знакомо, прошу прощения ...
view.refresh();
Реально меняется несколько полей, в будущем несколько строк и только потом делаем Рефреш грида.

potkin 16.11.2018 13:33

Пока что я отказался от использования viewConfig -> getRowClass. Эта связка работает при загрузке данных в Грид, было неимоверно удобно ...
Использую обычный перебор всех записей грида, после загрузки данных в него: for(...){...}
Костыли ...

siber-biber 16.11.2018 15:16

Цитата:

Сообщение от potkin (Сообщение 498741)
Так точно!

не верю ..прошу продемонстрировать это чудо ))
Цитата:

Сообщение от potkin (Сообщение 498741)
А что это?

сайт сенчи для создания примеров кода/тест кейсов и тд: https://fiddle.sencha.com
вот на нем пример сделайте чтоб предметно обсуждать


Часовой пояс GMT +3, время: 19:36.