RealGrid2 가이드
스타일 & 테마
컬럼 동적 스타일

컬럼 동적 스타일

컬럼 동적 스타일은 styleCallback이 지정된 컬럼에만 값에 따라 스타일이 적용됩니다.

※ styleCallback안에서 시간이 오래 걸리는 연산이나 setValue()등 값을 변경하는 행위를 하면 안됩니다.

자신의 컬럼 셀 값 참조

값이 "남"인 경우에 오렌지 색으로 표시.

var columns = [
  ...생략...
  {
    name: "Gender",
    fieldName: "Gender",
    width: "55",
    header: {
      text: "성별",
      styleName: "orange-column"
    },
    styleCallback: function(grid, dataCell){
      var ret = {}
 
      if(dataCell.value == '남'){
        ret.styleName = "orange-column"// ret.style = {background:"#ffff00"} 직접 스타일 적용 가능
      }
 
      return ret;
    }
  },
  ...생략...
];
 
gridView.setColumns(columns);

다른 컬럼 셀 값을 참조

성별 컬럼의 값이 "남"이고 나이 컬럼의 값이 60~70인 경우 오렌지색, 편집불가 처리

var columns = [
  ...생략...
  {
    name: "Age",
    fieldName: "Age",
    width: "55",
    header: {
      text: "나이",
      styleName: "orange-column"
    },
    styleCallback: function(grid, dataCell){
      var ret = {}
      var gender = grid.getValue(dataCell.index.itemIndex, "Gender")
 
      if( (gender == '남') && (dataCell.value >= 50 && dataCell.value <= 60)){
        ret.styleName = "orange-column";
        ret.editable = false;
      }
 
      return ret;
    }
  },
  ...생략...
];
 
gridView.setColumns(columns);

체크 렌더러에서 동적 적용

신규 행의 경우 체크가 가능하고 기존 행의 경우 체크가 불가능하게 처리.

var columns = [
  ...생략...
  {
    name: "Bool2",
    fieldName: "Bool2",
    width: "60",
    editable: false,
    renderer: {
      type: "check",
      trueValues: "Y,y,YES,yes",
      falseValues: "N,n,NO,no"
    },
    header: {
      text: "체크",
      styleName: "orange-column"
    },
    styleCallback: function(grid, dataCell){
      var ret = {};
     
      ret.renderer = { 
        type: "check",
        trueValues: "Y,y,YES,yes",
        falseValues: "N,n,NO,no",
        editable: dataCell.item.itemState == "appending" || dataCell.item.rowState == "created"
      }
 
      return ret;
    }
  },
  ...생략...
];
 
gridView.setColumns(columns);