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);
};