如何根据剑道网格中的特定列条件更改行的颜色

时间:2019-02-06 12:15:23

标签: angular kendo-ui kendo-grid kendo-angular-ui

我要将红色应用于其completedhours列值大于24的行。我该怎么做。请帮助我,我是新来的。

<kendo-grid [kendoGridBinding]="gridData">
    <kendo-grid-column field="RequestNumber" title="Request No."  
width="110" >
    </kendo-grid-column>
<kendo-grid-column field="RequestNumber" title="Request No."  width="110" >
    </kendo-grid-column>
<kendo-grid-column field="Name" title="Name."  width="110" >
    </kendo-grid-column>
<kendo-grid-column field="CompletedIn" title="CompletedIn"  width="110" >
    </kendo-grid-column>
 </kendo-grid>

3 个答案:

答案 0 :(得分:1)

如果满足上述条件,将用红色背景色标记行

<tr *ngFor="let myObject of myArray;" [ngStyle]="{'background-color':myObj.completedIn>24 ? 'red' : '' }">
   <!-- your other code -->
</tr>

答案 1 :(得分:1)

首先:您必须将[rowClass]添加到网格中

<kend-grid [rowClass]="rowCallback">
</kendo-grid>

然后您需要在组件内部添加函数并返回所需的类

public rowCallback(context: RowClassArgs) {
  if (context.dataItem.someProperty) {   // change this condition as you need
    return {
      passive: true
    };
  }
}  

最后,您需要有一个CSS类,其名称为您返回的名称(在本例中为passive,但您当然可以根据需要进行更改)

@Component({
  selector: "your-component",
  templateUrl: "./your.component.html",
  encapsulation: ViewEncapsulation.None,
  styles: [
    `
     .k-grid tr.passive {
        background-color: lightgray;
      }

    `
  ]
})

使用encapsulation: ViewEncapsulation.None并用前缀.k-grid tr命名该类非常重要,否则您将无法获得所需的结果

答案 2 :(得分:0)

使用 rowClass 回调为数据项满足某些自定义条件的所有行提供自定义类,然后通过CSS设置样式,例如:

DOCS + DEMO