RealGrid2 가이드
Tip
CheckBar에서 자식 노드 연동하여 체크하기

CheckBar에서 자식 노드 연동하여 체크하기

자식노드들이 모두 체크되었을때 부모노드도 체크되게 하는 예제입니다.
체크바에 체크시 발생하는 onItemChecked() 이벤트에서 체크하는 동작을 넣어 처리하였습니다.

function checkNode(grid, dataRow, checked) {
    var provider = grid.getDataSource();
 
    //형제노드체크 후 부모노드 체크
    checkSiblingNode(grid, dataRow, checked);
 
    //자식노드체크
    var desRows = provider.getDescendants(dataRow);
    if (desRows) {
        grid.checkRows(desRows, checked, false);
    }            
};
 
function checkSiblingNode(grid, dataRow, checked) {
    console.log("start-rowId2 checkedValue: " + grid.isCheckedRow(2));
    var provider = grid.getDataSource();
    //부모노드
    var parent = provider.getParent(dataRow);
    //형제노드
    var sibling = parent == -1 ? provider.getChildren() : provider.getChildren(parent);
    console.log(sibling);
    var index = sibling.indexOf(dataRow);
    //자기자신은 제외
    if (index !== -1) sibling.splice(index, 1);
 
    if (checked) {
        for (var i in sibling) {
            var value = grid.isCheckedRow(sibling[i]);
 
            if (checked != value) {
                checked = false;
                break;
            }
        }
    } else {
        checked = false;
    }           
 
    if (parent > -1) grid.checkRow(parent, checked, false, false);
    //checkBar.head 영역의 V표시 제어
    if (parent == -1) grid.setAllCheck(checked, false);
    if (parent > -1) checkSiblingNode(grid, parent, checked);
}
 
 
treeView.onItemChecked = function (grid, itemIndex, checked) {
  var dataRow = grid.getDataRow(itemIndex);
  checkNode(grid, dataRow, checked);
};