EXTJS: Как нарисовать строку другим цветом в TreeGrid на основе свойства в Response?

Я использую TreeGrid для отображения данных.

Вопрос: Как нарисовать строку другим цветом в зависимости от значения одного из столбцов?

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

Заранее спасибо.

1 ответ

Решение

Рисование строк в gridPanel может быть выполнено с помощью конфигурации viewConfig на панели сетки -

viewConfig: {
      getRowClass: function(record, rowIndex, rowParams, store) {
                              return record.get('mycls');
                          }
}

Однако при работе с SenchaArchitect я столкнулся со странной проблемой. В панели Tree Grid по умолчанию доступно свойство viewConfig, но пока я искал это свойство для добавления своей логики, Sencha Editor не показывал его, и в итоге я добавил viewConfig :{} вручную через архитектора Сенча. Это приводит к 2 viewConfigs в моем экземпляре панели сетки (один с моей реализацией и один по умолчанию). Таким образом, мой объект viewConfig переопределяется пустым объектом viewConfig по умолчанию, и моя логика никогда не выполнялась.

Чтобы преодолеть эту проблему, мне пришлось сохранить грязную черту и реализовать эту логику в функции afterRender, как показано ниже.

Grid.getView().getRowClass = function(record, rowIndex, rowParams, store){ 
    return record.get('mycls');
}

Это потенциальная ошибка в Sencha Architect.

Другие вопросы по тегам