조회 된 데이터에서 특정 조건에 따른 개별 셀(Cell) 속성을 제어하거나, 어떤 조건에서 셀(Cell)별 속성을 제어하려는 경우 아래와 같이 사용하실 수 있습니다.
1. attribute + Formula 를 통한 설정
특정 행(Row), 열(Column), 셀(Cell)의 조건에 따라 CanEdit 속성을 제어하는 CanEditFormula를 설정할 수 있습니다.
- (Col) attribute + Formula
- (Row) attribute + Formula
- (Cell) attribute + Formula
열(Column) 별로 속성 제어를 하는 자세한 예제는 아래 문서를 참고하시기 바랍니다.
참고 : 열의 속성값을 변경하는 Formula 사용하기 : IBSHEET8
2. 조회 데이터에서 개별 셀(Cell) 속성으로 제어 방법
onBeforeDataLoad:function(evt) {
for(var i=0;i<evt.data.length;i++){
//SM_PO열의 값이 "02" 인 코드는 편집 불가 설정
if(evt.data[i]["SM_PO"]=="02"){
// 조회 데이터에 "열이름 + 속성" 형식으로 값 추가
evt.data[i]["SM_POCanEdit"] = 0;
}
}
},
3. setAttribute를 통한 설정
setAttribute 메서드를 통해 특정 행(Row), 열(Column), 셀(Cell)에 원하는 속성을 설정할 수 있습니다.
특히 setAttribute 메서드의 row나 col 인자를 null 로 설정하면 열(Column) 이나 행(Row) 전체에 속성이 설정됩니다.
//특정 열에 편집불가 처리 sheet.setAttribute(null, "ColName", "CanEdit", 0); //선택행에 편집 불가 처리 sheet.setAttribute(sheet.getFocusedRow(), "null", "CanEdit", 0); //특정 셀에 편집을 불가능하게 변경 sheet.setAttribute(sheet.getFocusedRow(), sheet.getFocusedCol(), "CanEdit", 0 );
만약, 다수의 셀(Cell)에 속성 값을 적용하려는 경우, setAttribute 의 render 인자를 0 으로 설정하고, 마지막에 render 관련 메서드(renderBody, rerender)를 호출하는 것이 좋습니다.