2017-03-16 69 views
2

我采用了棱角分明的UI格,我需要而值是等于前行,保持相同的背景颜色。我需要合并颜色时,值是不同的,如波纹管的例子:UI - 网格 - 更改背景颜色相同的细胞值

enter image description here

我试图用cellClass做到这一点,但是当用户使用滚动时,rowRenderIndex的值被改变我失去了参考。

cellClass: function (grid, row, col, rowRenderIndex, colRenderIndex) { 
 
    ... 
 
}

我怎样才能获得的价值和类行的当前行过吗?

我创建了一个plunker作为例子。在这个游戏中,我想根据前一个字段的值来更改列时间的颜色。如果值相等,颜色需要相同,但如果值不同,颜色也需要不同。例如,如果直到第38行为止,滚动过程中线条的颜色将会改变。

Plunker

+0

你是什么意思“当用户使用滚动”是什么意思?也许你可以提供一个工作的跳板或小提琴? –

+0

@TimHarker,我为延迟道歉,但我在其他项目的工作。我编辑了我的帖子,并创建了一个运动员作为例子。 –

+0

我会仔细看看。谢谢! –

回答

1

这应该让你相当接近。

enter image description here

下面是从控制器相关代码:

var currentAge = 0; 
var previousStyle = 'group2'; 
$scope.gridOptions.columnDefs = [ 
    {name:'id'}, 
    {name:'name'}, 
    {field:'age', 
    cellClass: function (grid, row, col, rowRenderIndex, colRenderIndex) { 
     var newStyle; 
     if (currentAge != row.entity.age) { 
      if (previousStyle == 'group2') { 
      previousStyle = ''; 
      newStyle = 'group2'; 
      } else { 
      previousStyle = 'group2'; 
      newStyle = 'group1'; 
      } 
     } else { 
      if (previousStyle == 'group2') { 
      newStyle = 'group1'; 
      } else { 
      newStyle = 'group2'; 
      } 
     } 
     currentAge = row.entity.age; 
     return newStyle; 
     } 
    }, 
    {name: 'address.city'} 
]; 

这是你的Plunker更新,http://plnkr.co/edit/gxMGCJTgjVpiY3zRVq0g?p=preview

让我知道如果您有任何问题。

+0

谢谢。但是你知道为什么我会在控制台中得到几个错误吗?如果我在没有订单的情况下转到第38行,38行中的颜色与第39行中的颜色不同,但值是等于。 –

+0

很好,matey!我按照最初完成的方式更新答案。如果你看到其他东西,请告诉我。希望我在帮助! –

+0

它的工作。 Thaks。我正在研究代码以避免在网格滚动过程中单元格颜色发生变化。 –