javascript - 如何在 angular-ui-grid 中为特定值的行着色?

标签 javascript html css angularjs angular-ui-grid

我正在尝试根据新的 angular-ui-grid 3.0 rc12 中的值为一行着色,但我无法做到。以下代码用于以前的版本 (ngGrid):

$scope.gridOptions =
    data: 'data.sites'
    tabIndex: -1
    enableSorting: true
    noTabInterference: true
    enableColumnResizing: true
    enableCellSelection: true
    columnDefs: [
      {field: 'sv_name', displayName: 'Nombre'}
      {field: 'sv_code', displayName: 'Placa'}
      {field: 'count', displayName: 'Cuenta'}
    ]
    rowTemplate: """<div ng-class="{green: true, blue: row.getProperty('count') === 1}"
                         ng-repeat="col in colContainer.renderedColumns track by col.colDef.name"
                         class="ui-grid-cell"
                         ui-grid-cell></div>"""

和相应的CSS:

.grid {
  width: 100%;
  height: 250px;
}

.green {
  background-color: #2dff07;
  color: #006400;
}

.blue {
  background-color: #1fe0f0;
  color: #153ff0;
}

这里的问题是表达式:

row.getProperty('count') === 1

不再像在 ngGrid 中那样工作。关于如何在 angular-ui-grid ( ui-grid.info ) 中实现相同目标的任何猜测

非常感谢!

最佳答案

新的 ui-grid 有一个 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';
        }
      }
    ]
  };

看看他的Plunker

请注意,我将 green 类的颜色设置为 red,因为这样更容易看到并引起最大的困惑:-)

更新:

这是行着色的解决方案。

像这样写你的行模板:

  var rowtpl='<div ng-class="{\'green\':true, \'blue\':row.entity.count==1 }"><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>';

这是 forked Plunker

请注意,背景色会被单元格背景覆盖。自己想办法解决这个问题:-)

很抱歉最初误读了您的问题。我将 cellClass 部分留在这个答案中,以备不时之需。

关于javascript - 如何在 angular-ui-grid 中为特定值的行着色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26362666/

相关文章:

javascript - 使用 JavaScript 隐藏和显示

javascript - Bootstrap Carousel 不工作(显示页面上的所有元素)

html - 为网络游戏记分牌编写 CSS 布局

html - 为什么我的页脚元素覆盖了页面内容?

javascript - 从远程 JSONP 对象访问数据

javascript - 无法通过数据通道获取消息

javascript - 类型错误 : Cannot read property 'open' of undefined (Phonegap and Ionic)

html - 如何更改背景颜色的不透明度?

html - 将 Fieldset Legend 与 Bootstrap 一起使用

html - 为什么我的 CSS 是 :hover @keyframes animation not working?