>source

다음을 사용하여 편집 가능한 그리드를 만들었습니다.AG 그리드변경된 셀을 강조 표시해야합니다. 다음 코드를 추가했습니다.

   (cellValueChanged)="onDemandsCellValueChanged($event)"

그리고 방법 :

   onDemandsCellValueChanged(params): void {
    if (params.oldValue === params.newValue) {
      return;
    }
    params.data.modified = true; // add modified property so it can be filtered on save
    const column = params.column.colDef.field;
    params.column.colDef.cellStyle = { 'background-color': '#e1f9e8' }; // highlight modified cells
    params.api.refreshCells({
      force: true,
      columns: [column],
      rowNodes: [params.node],
    });
  }

셀이 강조 표시되지만 위아래로 스크롤하면 해당 열의 모든 셀이 강조 표시됩니다.

동작을 확인할 수 있습니다.Stackblitz.

또한 더 나은 방법이 있다면 새로운 솔루션에 열려 있습니다.


  • 답변 # 1

    나는 당신의 문제를 이해합니다 당신이 원하는 것을 얻을 수 있습니다-당신은 사용해야합니다 cellStyle 문서에 표시되는 열 정의에서이 코드는 다음과 같습니다.

    cellStyle: params => {
              if (params.data.modified) {
                return { backgroundColor: "#e1f9e8" };
              } else {
                return null;
              }
            },
    
    

    그 후에이 함수에서 onDemandsCellValueChanged 이 속성을 추가하고 수정하십시오 modified true로 설정하고 아래와 같이 기능을 변경하십시오.

    onDemandsCellValueChanged(params): void {
        if (params.oldValue === params.newValue) {
          return;
        }
        params.data.modified = true;
        const column = params.column.colDef.field;
        params.api.refreshCells({
          force: true,
          columns: [column],
          rowNodes: [params.node]
        });
      }
    
    

    이제 스크롤해도 작동합니다. 다음은 stackblitz에 대한 완전한 작업 예제입니다.

관련 자료

  • 이전 dart - Flutter에서 "하프 오프라인"앱을 만드는 가장 좋은 방법은 무엇입니까?
  • 다음 javascript - 오류에 대한 전체 스택 추적을 인쇄하도록 mocha를 어떻게 구성합니까?