2017-03-16 174 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。我正在研究代碼以避免在網格滾動過程中單元格顏色發生變化。 –