2017-03-16 7 views
2

저는 앵귤러 UI 그리드를 사용하고 있으며 값이 이전과 같을 때 같은 배경색을 유지해야합니다.Ui-Grid - 배경색 셀을 같은 값으로 변경하십시오.

enter image description here

내가하지만, cellClass를 사용하여 할 노력하고있어 사용자의 사용 스크롤이의 rowRenderIndex의 값이 변경됩니다 : 값이 다를 때 나는 울부 짖는 소리의 예로서, 색상을 병합해야 그리고 나는 그 참조를 잃어 버렸다.

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

어떻게 가치와 현재 행 이전 행의 수업을받을 수 있나요?

예제로 플 런커를 만들었습니다. 이 플 런커에서는 이전 필드의 값을 기준으로 열의 색을 변경하려고합니다. 값이 같으면 색상이 동일해야하지만 값이 다른 경우 색상도 달라야합니다. 예를 들어 38 행까지 이동하면 스크롤하는 동안 선의 색상이 변경됩니다.

Plunker

+0

"사용자가 스크롤을 사용하는 경우"란 무엇을 의미합니까? 아마도 당신은 일하는 plunker 또는 바이올린을 제공 할 수 있습니까? –

+0

@TimHarker, 지연에 대해 사과하지만 다른 프로젝트에서 일하고있었습니다. 나는 내 게시물을 편집하고 예제로 덩어리를 만들었습니다. –

+0

자세히 살펴 보겠습니다. 고맙습니다! –

답변

1

이것은 당신이 사실을 얻어야한다.

enter image description here

다음 컨트롤러에서 관련 코드입니다 :

여기 Plunker가 업데이트됩니다
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'} 
]; 

, http://plnkr.co/edit/gxMGCJTgjVpiY3zRVq0g?p=preview.

궁금한 점이 있으면 알려주세요.

+0

감사합니다. 하지만 콘솔에 몇 가지 오류가 발생하는 이유는 알고 있습니까? 내가 열을 정렬하지 않고 38 행으로 이동하면 38 행의 색은 39 행의 색과 다르지만 값은 같음. –

+0

좋은 캐치, 친구! 처음에했던 것처럼 응답을 업데이트했습니다. 다른 것을 본다면 알려주세요. 희망은 내가 돕고있어! –

+0

작품입니다. 탁신. 그리드 스크롤 중에 셀 색상이 바뀌지 않도록 코드를 연구 중입니다. –