Цвет сетки RowTemplate пользовательского интерфейса на основе значения ячейки

0

Я использую ниже rowTemplate. Я хочу применить класс css "ui-grid-invalid-upload-row", когда Valid == true. Так или иначе, он не работает.

<div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader, \'ui-grid-invalid-upload-row\': col.colDef["Value"]==true }" ui-grid-cell></div>
  • 0
    вы забыли опубликовать используемый вами шаблон строки
  • 0
    Можете ли вы поделиться больше вашего кода. как это поможет увидеть поля
Теги:
angular-ui-grid
ui-grid

3 ответа

0
Лучший ответ

Я получил вышеописанное, я использовал ниже, чтобы изменить цвет на основе row.entity. [FieldName]. Проводя здесь, надеясь, что кто-то получит помощь от этого,

function rowTemplate() {
        return $timeout(function () {
            return '<div ng-class="{ \'ui-grid-invalid-upload-row\': grid.appScope.rowFormatter( row ) }">' +
                        ' <div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader }"   ui-grid-cell></div>' +
                    '</div>';
        });
    }

$scope.rowFormatter = function (row) {
    return row.entity.Value === 'true';
};
0

Я изменил col.colDef["Value"]==true для col.colDef[\'Value\']. Двойные кавычки преждевременно завершают оператор ng-class

<div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader, \'ui-grid-invalid-upload-row\': col.colDef[\'Value\'] }" ui-grid-cell></div>

EDIT Поскольку вы хотели изменить цвет на основе значения ячейки, я думаю, вам следует изменить cellTemplate.

0

Используйте row.entity.yourfieldname если вы хотите, чтобы строка цвета

Как и ng-class="{\'green\':true, \'blue\':row.entity.count==1 }"

Рабочий плункер здесь


Если вы только хотите применить класс к Cell, используйте cellClass вместо

  $scope.gridOptions = {
    enableSorting: true,
    data:'myData',
    columnDefs: [
      { field: 'sv_name', displayName: 'Nombre'},
      {field: 'sv_code', displayName: 'Placa'},
      { field: 'count', displayName: 'Cuenta',
        cellClass: function(grid, row, col, rowRenderIndex, colRenderIndex) {
          if (grid.getCellValue(row,col) == 1) {
            return 'blue';
          }
          return 'green';
        }
      }
    ]
  };

Рабочий плункер здесь

Дайте мне знать, если это вам поможет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню