Отрисовать в плиточном реестре пользовательские поля

Добрый день.

Есть Данные, хранящиеся в json-строке

Есть Объект, со структурой полей соответствующей Данным в json.

Есть Модуль с DataGrid, в котором нужно отобразить реестр записей.

Наполняю коллекцию GridData: 

 

prepareDataGridViewModule: function(dataList){
    //Наполнить GridData
    var gridData = this.get("GridData");
    var entityConfig = this.getEntityConfig(this.$MasterEntityName);
    this.Terrasoft.each(dataList, function(item) {
        var itemData = Ext.JSON.decode(item.Data);
        var itemModel = this.Ext.create("Terrasoft.BaseViewModel", {
              columns: entityConfig.columns, //Коллекция полей Объекта
              values: itemData   //Коллекция значений полей
         });
         gridData.add(item.Id, itemModel);
      }, this);
}

В итоге получаю отображение: 

https://yadi.sk/i/XUkp2kMCWWB4KQ



Кто сталкивался?

Как можно наполнить плиточное представление реестра в каждой строке своими динамическими полями?

Нравится

9 комментариев

Игорь, добрый день!

Вы можете разработать формирование всей информации на уровне базы данных в представление, по которому в конфигурации создан объект. Как работать с JSON в MS SQL, описано в этой статье.

Илья, здравствуйте.

Мне нужно это сделать именно на клиентской части.

И мне бы понять почему данные загружаются реестр, но не происходит парсинг по полям записи.

Игорь, эта логика самостоятельно разработана Вами, поэтому причину такого её поведения можете установить только Вы, например, применив отладку. 

Перефразирую:

В каком виде я должен передать свою коллекцию значений и полей в GridData, чтобы Базовыми средствами отрисовать поля реестра?

Базовыми средствами колонки и их значения берутся из объекта, с которым связан раздел, а не передаются отдельно. Либо используйте представление, либо обычную таблицу с наполнением данными программно.

Попробуйте найти раздел или дополнение, в котором реализовано подобное тому, что Вы хотите получить. Возможно, что-то похожее на раздел планирования.

Я и нашёл. в LocalDuplicateSearchPageV2 и его миксине DuplicatesSearchUtilitiesV2, где в методе loadElasticDuplicates в модель реестра передаются поля (columns) и значения (values).

В итоге в реестре глобального поиска строки реестра отображаются корректно с набором полей и значений, а в моём модуле в строках полоски.

Может не совпадать количество или формат передаваемых данных, что угодно. Без отладки не выяснить, в чём отличие. Также, если в браузере при работе Вашей функции выдаются ошибки, смотрите их смысл.

Ошибок нет. я бы с удовольствием протестировал.

Только не могу понять какой метод обрабатывает передаваемую коллекцию и отрисовывает реестр.

Произведите отладку Вашего кода и работающего на странице дублей. Также Вы можете заказать такие доработки у компаний-партнёров.

Показать все комментарии