【问题标题】:Change color of certain row with the selection module使用选择模块更改某行的颜色
【发布时间】:2015-09-11 19:35:09
【问题描述】:

当属性具有特定值时,我想为该行着色。之前已经提出过这个问题,并且在这里有一个可行的解决方案: How to color row on specific value in angular-ui-grid?

我正在设置正面颜色(颜色:#FF0000),而不是背景颜色。

在您添加选择模块之前,这可以正常工作。使用此模块,您在该行的开头有一个额外的复选框。当您选中此项时,行的背景颜色会发生变化(而不是前面的颜色!)。所有这一切都添加了一个额外的类,它在网格的 css 中声明:

.ui-grid-row.ui-grid-row-selected > [ui-grid-row] > .ui-grid-cell {
  background-color: #c9dde1;
}

当复选框被选中时,这个类被添加到元素中。

我拥有的代码与链接答案中的代码相似:

rowTemplate: '<div ng-class="{\'targetRow\': row.entity.target }"><div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.uid" class="ui-grid-cell" ng-class="{ \'ui-grid-row-header-cell\': col.isRowHeader }" ui-grid-cell></div></div>',

.targetRow {
    color: #FF0000;
}

添加后,选择行时,背景颜色不会更改。在 Chrome 的调试工具中,我可以看到该类仍然被正确添加并且没有其他差异,仍然 color 以某种方式覆盖 background-color

为什么会发生这种情况,我该如何解决?

这是一个 Plunker: http://plnkr.co/edit/U1rmT48kSjK5gVH0Fv43?p=preview

删除 rowTemplate 以查看差异。

【问题讨论】:

    标签: javascript html css angularjs angular-ui-grid


    【解决方案1】:

    问题出在我将行模板更新为之后的模板

    var rowtpl = '<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, \'green\':true, \'blue\':row.entity.count==1 }" ui-grid-cell></div>';
    

    网格开始工作

    http://plnkr.co/edit/4XVh31i48Y5iKZbaFevE?p=preview

    【讨论】:

    • 谢谢,这正是我想要的!你能解释一下为什么它没有像我尝试过的那样工作吗?
    • 我正在更深入地调试它来给你答案;)
    • 行的root元素似乎必须是ui-grid-cell,内部可以有更复杂的结构,但单元格必须在顶部
    猜你喜欢
    • 2014-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    相关资源
    最近更新 更多