AUISoft
AUIGrid 3.0.13 Documentation
ConditionRenderer

컨디션 렌더러는 칼럼 셀의 에디터를 동적으로 지정할 수 있습니다.

일반적으로 하나의 칼럼에는 동일한 에디터가 출력됩니다. 즉, 달력(CalendarRenderer) 를 설정하면 해당 칼럼의 모든 셀은 수정 시 달력이 출력됩니다.

그러나 컨디션 렌더러로 하나의 칼럼의 에디터를 동적으로 표현 할 수 있습니다.

콤보박스 렌더러는 칼럼 레이아웃을 정의할 때 개별 칼럼의 editRenderer 속성 값인 Object 형태로 선언되어야 합니다.

칼럼의 editRenderer 속성의 type 으로만 설정 가능합니다.

아래는 설정 예제 입니다.
// 조건부 에디트렌더러 출력할 editRenderer 정의 1
var myEditRenderer = {
      type : "DropDownListRenderer",
      list : posList
};

// 조건부 에디트렌더러 출력할 editRenderer 정의 2
var myEditRenderer2 = {
      type : "CalendarRenderer",
      showEditorBtnOver : true, // 마우스 오버 시 에디터버턴 출력 여부
      onlyCalendar : true, // 사용자 입력 불가, 즉 달력으로만 날짜입력 (기본값 : true)
      showExtraDays : true // 지난 달, 다음 달 여분의 날짜(days) 출력
};

var columnLayout = [ {
     dataField : "name",
     headerText : "Name",
     width : 140
}, {
     dataField : "data",
     headerText : "Data",
     width : 120,
     editRenderer : { // 조건에 따라 editRenderer 사용하기.
            type : "ConditionRenderer", 
            conditionFunction : function(rowIndex, columnIndex, value, item, dataField) {
                  // 특정 조건에 따라 미리 정의한 editRenderer 반환.
                  if(item.myCode == 1) {
                       return myEditRenderer;
                  } else if(item.myCode == 2) {
                       return myEditRenderer2;
                  }
            }
     }
}];
NameDescription
conditionFunction
Type : Function

셀 편집 시 표현할 에디터를 동적으로 지정해주는 함수입니다. ConditionRenderer 사용 시 이 함수는 필수 정의해야 합니다.

conditionFunction 은 함수를 지정해야 하며 함수 형태는 다음과 같습니다.

  • rowIndex : 행 인덱스
  • columnIndex : 칼럼 인덱스
  • value : 원래 데이터의 해당 셀 값(value)
  • item : 해당 행에 출력되고 있는 행 아이템 객체 (Object)
  • dataField : 해당 칼럼이 출력하고 있는 행 아이템의 필드명(String)
conditionFunction : function(rowIndex, columnIndex, value, item, dataField) {
       // 특정 조건에 따라 미리 정의한 editRenderer 반환.
       if(item.myCode == 1) {
              return myEditRenderer; // 미리 정의된 Object
       } else if(item.myCode == 2) {
              return myEditRenderer2; // 미리 정의된 Object
       }
}

이 함수의 반환값이 곧 실제 적용되는 에디트렌더러가 됩니다.