SMART datagrid v1.4 > Examples
GridView에 연결될 수 있는 GridDataSet은 데이터셋이 초기화된 후 데이터셋을 변경하는 여러 메쏘드들을 제공한다. 어플리케이션 초기에 그리드 데이터셋을 초기화하는 것은 LoadCsvData, SetDataRows 등의 예제를 참조한다.
이 예제에서는 하나 이상의 행을 추가하거나, 기존 행들을 변경하고 삭제하는 방법들을 알아본다.
지정한 위치에 새로운 행을 삽입한다. 값은 배열이나 Json 객체로 전달할 수 있다.
function btnInsertRow_click() {
var row = Math.max(grdMain.focusedDataRowIndex(), 0);
dsMain.insertRow(row, ['v1', 'v2', 123, 'v4']);
dsMain.insertRow(row + 1, {
field1: 'w1', field2: 'w2', field3: 321, field4: 'w4'
});
}
마지막 행 다음에 새로운 행을 추가한다. 값은 배열이나 Json 객체로 전달할 수 있다. InsertRow나 AppendRow 모두 onRowInserted 이벤트를 발생시킨다.
dsMain.onRowInserted = function (ds, row) {
alert(row + '행 위치에 새로운 행이 추가됐습니다');
};
지정된 행의 값들을 수정한다. strict 가 true면 undefined로 전달된 필드이 값은 변경하지 않는다. checkDiff가 true면 기존 값과 같은 값이면 변경하지 않는다. 즉, checkDiff가 true이고 전달된 값들과 기존 행의 값들이 모두 같으면 행 변경이 진행되지 않는다. 행이 실제로 변경되면 onRowUpdated 이벤트가 발생한다.
dsMain.onRowUpdated = function (ds, row) {
alert(row + '행의 값들이 변경됐습니다.');
};
btnUpdateRow_click: function () {
var row = grdMain2.focusedDataRowIndex();
if (row >= 0) {
dsMain.updateRow(row, ['xxx', 'yyy', 777, 'zzz']);
}
};
지정한 위치에 여러 행을 동시에 삽입한다. insertRow와 마찬가지로 각 행은 배열이거나, Json 객체일 수 있다.
마지막 행 다음에 여러 행을 동시에 추가한다.
지정한 위치로부터 연속된 여러 행을 동시에 수정한다. 매개변수로 지정한 행의 개수가 기존 행들의 범위를 벗어나면 무시된다.
복수행 처리 이벤트 등에 대한 자세한 설명은 각각 GridDataSet.insertRows, GridDataSet.appendRows, GridDataSet.updateRows를 참조한다.
데이터행의 삭제 또한 한 행 또는 여러 행을 동시에 할 수 있다.
지정된 행을 삭제한다.
하나 이상 지정된 행들을 동시에 삭제한다. 예제에서는 Checked 된 행들을 삭제한다.
삭제 이벤트 등에 대한 자세한 설명은 각각 GridDataSet.deleteRow, GridDataSet.deleteRows를 참조한다.
btnDeleteRows_click: function () {
var rows = [];
var checkedRows = [];
for (var i = grdMain.rowCount(); i--;) {
var row = grdMain.getRow(i);
if (row.isChecked() && row.dataIndex() >= 0) {
checekdRows.push(row.dataIndex());
}
}
if (checkedRows.length > 0) {
dsMain.deleteRows(checkedRows);
} else {
alert('삭제할 행들을 Check 하세요.');
}
}