RealGrid2 튜토리얼
콜백함수

콜백 함수

RealGrid에서는 사용자의 상호작용 및 시스템 이벤트를 처리 할 수 있도록 다양한 콜백함수를 제공합니다.

아래에서 콜백함수의 종류와 호출 방법 등을 확인 해보실 수 있습니다.

클릭

그리드 셀이 클릭되었음을 알리는 콜백

gridView.onCellClicked = function (grid, clickData) {
    console.log("onCellClicked: " + JSON.stringify(clickData));
}

그리드 셀이 더블 클릭되었음을 알리는 콜백

gridView.onCellDblClicked = function (grid, clickData) {
    console.log("onCellDblClicked: " + JSON.stringify(clickData));
}

그리드 셀에 포함된 엘리먼트가 클릭되었음을 알리는 콜백

gridView.onCellItemClicked = function (grid, index, clickData) {
    console.log("onCellItemClicked: " + JSON.stringify(clickData));
    return true;
}

사용자가 checkBar의 Header를 클릭하여 전체선택, 해제를 하거나 또는 checkAll true / false 을 입력하여 전체선택, 해제를 했음을 알리는 콜백

gridView.onItemAllChecked = function (grid, checked) {
    console.log("onItemAllChecked: " + checked);
}

사용자가 checkBar의 체크박스를 클릭하거나 checkItem을 호출하여 체크를 변경했음을 알리는 콜백

gridView.onItemChecked = function (grid, itemIndex, checked) {
    console.log("onItemChecked: " + checked + " at " + itemIndex);
}

사용자가 checkBar의 체크박스를 클릭하거나 checkItem을 호출하여 체크를 변경했음을 알리는 콜백

gridView.onItemsChecked = function (grid, items, checked){
    console.log("onItemChecked: " + items.join() + " are checked as " + checked);
}

SearchCellEditor (opens in a new tab) 에서 버튼을 클릭했음을 알리는 콜백

gridView.onSearchCellButtonClick = function (grid, index, text) {
    console.log("onSearchCellButtonClick: " + ' button was clicked!');
}

이동

그리드의 focus cell 의 위치 변경을 결정하는 콜백

gridView.onCurrentChanging = function (grid, oldIndex, newIndex) {
    console.log("grid.onCurrentChanging: " + "(" + oldIndex.itemIndex + ", " + oldIndex.column + ") => (" + newIndex.itemIndex + ", " + newIndex.column + ")");
    // return false; 를 하는 경우 위치 변경이 되지 않는다.
};

그리드의 focus cell 의 위치 변경을 알리는 콜백

gridView.onCurrentChanged = function (grid, newIndex) {
    console.log("grid.onCurrentChanged: " + "(" + newIndex.itemIndex + ", " + newIndex.column + ")");
};

데이터 행의 위치가 변경됨을 알리는 콜백

gridView.onCurrentRowChanged = function (grid, oldRow, newRow) {
    console.log("grid.onCurrentRowChanged: " + "(" + oldRow + " => " + newRow + ")");
};

데이터 행이 이동되었음을 알리는 콜백

dataProvider.onRowMoved = function (provider, row) {
    console.log("provider.onRowMoved: " + row + ' to ' + newRow);
};

데이터 행의 이동을 결정하는 콜백

dataProvider.onRowMoving = function (provider, row, newRow) {
    console.log("provider.onRowMoving: " + row + ' to ' + newRow);
    return true;
};

복수의 데이터 행이 이동되었음을 알리는 콜백

dataProvider.onRowsMoved = function (provider, row, count, newRow) {
    console.log('provider.onRowsMoved: ' + count + ' rows moved');
};

복사 붙여넣기

control + c 키로 복사하기를 결정하는 콜백

gridView.onCopy = function(grid, selection, event) {
    console.log("grid.onCopy");
};

그리드에 붙여넣기를 결정하는 콜백

gridView.onPaste = function (grid, index, event){
    console.log("grid.Paste");
};

그리드에 붙여넣기 했음을 알리는 콜백

gridView.onPasted = function (grid){
    console.log("grid.Pasted");
};

그리드 셀에 붙여넣기 했음을 알리는 콜백

gridView.onEditRowPasted = function (grid, itemIndex, row, fields, oldValues, newValues) {
    console.log('grid.onEditRowPasted: {' + newValues.join() + '}');
};

여러 행을 붙여넣기 했음을 알리는 콜백

gridView.onRowsPasted =  function (grid, items) {
    console.log("grid.onRowsPasted" + items);
};

추가/수정/삭제

사용자가 편집중 ESCAPE 키를 입력하거나 cancel() 이 호출되어 편집이 취소됨을 알리는 콜백

gridView.onEditCanceled = function (grid, index) {
    console.log("grid.onEditCanceled driven, edit index=" + JSON.stringify(index));
};

아이템이 사용자의 Key 입력 등으로 값이 변경되었음을 알리는 콜백

gridView.onEditChange = function (grid, index, value) {
    console.log("grid.onEditChange driven, " + index.column + ' at ' + index.dataRow + ' was replaced by value: ' + value);
};

사용자 입력이 셀에 반영함을 결정하는 콜백

gridView.onEditCommit = function (grid, index, oldValue, newValue) {
    console.log("grid.onEditCommit driven, " + oldValue + " => " + newValue);
};

사용자 입력으로 변경된 값이 행에 반영되었음을 알리는 콜백

gridView.onEditRowChanged = function (grid, itemIndex, dataRow, field, oldValue, newValue) {
    var v = grid.getValue(itemIndex, field);
    console.log("grid.onEditRowChanged: " + oldValue + " => " + newValue);
};

셀 편집이 완료되었을 때 셀의 위차와 편집결과를 갖고 있는 콜백

gridView.onGetEditValue = function (grid, index, editResult) {
    console.log("grid.onGetEditValue: " + JSON.stringify(editResult));
};

수정이나 추가 중인 편집 아이템의 한 필드값이 편집 완료되었음을 알리는 콜백

gridView.onCellEdited = function (grid, itemIndex, row, field) {
    console.log("grid.onCellEdited: " + itemIndex + ', ' + field);
}

사용자가 행 편집을 취소를 결정하는 콜백

gridView.onItemEditCancel = function (grid, itemIndex, state) {
    console.log("grid.onItemEditCancel: " + state);  
    //return false; 를 하는 경우 취소 되지 않는다.
};

사용자가 행 편집을 취소했음을 알리는 콜백

gridView.onItemEditCanceled = function (grid, itemIndex, state) {
    console.log("grid.onItemEditCanceled: " + state);
};

데이터 행 추가를 결정하는 콜백

gridView.onRowInserting = function (grid, itemIndex, dataRow) {
    console.log("grid.onRowInserting: " + itemIndex);
    //추가하지 못하게 하려면 string 메시지나 boolean false를 리턴한다.
    return null;
};

사용자가 Ctrl+Del 키를 누르거나 deleteSelection() (opens in a new tab) 으로 삭제할 때, 실제 삭제를 결정하는 콜백

gridView.onRowsDeleting = function (grid, rows) {
    console.log("grid.onRowsDeleting: " + rows);
    //null이 아닌 값을 반환하면 지정 텍스트를 표시하고 삭제를 취소한다.
    return null;
};

Cell 별로 열리는 Editor 의 표시를 결정하는 콜백

gridView.onShowEditor = function (grid, index, props, attrs) {
    console.log("grid.onShowEditor: " + index.itemIndex + "," + index.column);
};

편집이 완료되고 편집기가 사라진 것을 알리는 콜백

gridView.onHideEditor = function (grid, index) {
    console.log("grid.onHideEditor: " + index.itemIndex + "," + index.column);
};

데이터가 변경 되었음을 알리는 콜백

dataProvider.onDataChanged = function (provider) {
    console.log("provider.onDataChanged");
};

복수의 데이터 행의 상태가 복원되었음을 알리는 콜백

dataProvider.onRestoreRows = function (provider, rows) {
    console.log('provider.onRestoreRows: ' + rows.join(', '));
};

데이터 행의 건수가 변경되었음을 알리는 콜백

dataProvider.onRowCountChanged = function (provider, newCount) {
    console.log("provider.onRowCountChanged: " + newCount);   
};

데이터 행이 삭제되었음을 알리는 콜백

dataProvider.onRowDeleted = function (provider, row) {
    console.log('provider.onRowDeleted: ' + row);
};

데이터 행의 삭제를 결정하는 콜백

dataProvider.onRowDeleting = function (provider, row) {
    console.log('provider.onRowDeleting: ' + row);
    return true;
};

데이터 행이 추가되었을을 알리는 콜백

dataProvider.onRowInserted = function (provider, row) {
    console.log("provider.onRowInserted");
};

데이터 행 추가를 결정하는 콜백

dataProvider.onRowInserting = function (provider, row, values) {
    console.log('provider.onRowInserting: ' + row);
    return true;
};

다수의 데이터 행이 변경되었음을 알리는 콜백

dataProvider.onRowListUpdated = function (provider, rows) {
    console.log("provider.onRowListUpdated: " + rows.join(', '));
};

행들이 삭제가 되었음을 알리는 콜백

dataProvider.onRowsDeleted = function (provider, rows) {
    console.log("provider.onRowsDeleted: " + rows.join(', '));
};

다수의 데이터 행이 일괄 추가되었을 때 알리는 콜백

dataProvider.onRowsInserted = function (provider, row, count) {
    console.log("provider.onRowsInserted: " + count + " rows inserted!");
};

행 상태가 변경되었음을 알리는 콜백

dataProvider.onRowStateChanged = function (provider, row) {
    console.log('provider.onRowStateChanged: ' + row);
};

여러 행들의 상태가 변경되었음을 알리는 콜백

dataProvider.onRowStatesChanged = function (provider, rows) {
    console.log('provider.onRowStatesChanged: ' + rows.join(','));
};

모든 행의 상태가 초기회 되었음을 알리는 콜백

dataProvider.onRowStatesCleared = function (provider) {
    console.log('provider.onRowStatesCleared');
};

다수의 데이터 행이 변경되었음을 알리는 콜백

dataProvider.onRowsUpdated = function (provider, row, count) {
    console.log('provider.onRowsUpdated');
};

행 수정이 되었음을 알리는 콜백

dataProvider.onRowUpdated = function (provider, row) {
    console.log("provider.onRowUpdated: " + row);
};

행 수정을 결정하는 콜백

dataProvider.onRowUpdating = function (provider, row) {
    console.log("provider.onRowUpdating: " + row);
    return true;
};

데이터의 값이 변경 되었음을 알리는 콜백

dataProvider.onValueChanged = function (provider, row, field) {
    console.log('provider.onValueChanged: ' + row + ' row, ' + field + ' fieldIndex');
};

키보드 입력 콜백

키 입력을 결정하는 콜백

gridView.onKeyDown = function (grid, event) {
     console.log('You pressed... ' + event);
}

키가 입력되고 있음을 알리는 콜백

gridView.onKeypress = function (grid, event) {
     console.log('You are pressing... ' + event);
}

키를 입력하였음을 알리는 콜백.

gridView.onKeyUp = function (grid, event) {
     console.log('You pressed... ' + event);
}

렌더링 완료 이벤트

gridView.onDataLoadComplated = function(grid){
    alert("onDataLoadComplated 이벤트 발생. 행 수: " + dataProvider.getRowCount())
  }