SMART datagrid v1.4 > Examples

Back  Forward

Grid DataSet Edit  Example

GridView에 연결될 수 있는 GridDataSet은 데이터셋이 초기화된 후 데이터셋을 변경하는 여러 메쏘드들을 제공한다. 어플리케이션 초기에 그리드 데이터셋을 초기화하는 것은 LoadCsvData, SetDataRows 등의 예제를 참조한다. 

이 예제에서는 하나 이상의 행을 추가하거나, 기존 행들을 변경하고 삭제하는 방법들을 알아본다. 

Grid - 1
rows

지정한 위치에 새로운 행을 삽입한다. 값은 배열이나 Json 객체로 전달할 수 있다. 

Code -1
    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 이벤트를 발생시킨다. 

Code -2
    dsMain.onRowInserted = function (ds, row) {
        alert(row + '행 위치에 새로운 행이 추가됐습니다');  
    };

지정된 행의 값들을 수정한다. stricttrueundefined로 전달된 필드이 값은 변경하지 않는다. checkDifftrue면 기존 값과 같은 값이면 변경하지 않는다. 즉, checkDifftrue이고 전달된 값들과 기존 행의 값들이 모두 같으면 행 변경이 진행되지 않는다. 행이 실제로 변경되면 onRowUpdated 이벤트가 발생한다. 

Code -3
    dsMain.onRowUpdated = function (ds, row) {
        alert(row + '행의 값들이 변경됐습니다.');  
    };
    btnUpdateRow_click: function () {
        var row = grdMain2.focusedDataRowIndex();
        if (row >= 0) {
            dsMain.updateRow(row, ['xxx', 'yyy', 777, 'zzz']);
        }
    };
Grid - 2

지정한 위치에 여러 행을 동시에 삽입한다. insertRow와 마찬가지로 각 행은 배열이거나, Json 객체일 수 있다. 

마지막 행 다음에 여러 행을 동시에 추가한다. 

지정한 위치로부터 연속된 여러 행을 동시에 수정한다. 매개변수로 지정한 행의 개수가 기존 행들의 범위를 벗어나면 무시된다. 

Grid - 3

복수행 처리 이벤트 등에 대한 자세한 설명은 각각 GridDataSet.insertRows, GridDataSet.appendRows, GridDataSet.updateRows를 참조한다. 

데이터행의 삭제 또한 한 행 또는 여러 행을 동시에 할 수 있다. 

지정된 행을 삭제한다. 

하나 이상 지정된 행들을 동시에 삭제한다. 예제에서는 Checked 된 행들을 삭제한다. 

삭제 이벤트 등에 대한 자세한 설명은 각각 GridDataSet.deleteRow, GridDataSet.deleteRows를 참조한다. 

Code -4
    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 하세요.');
        }
    }

소스보기 JSP 

See Also
GridDataSet
GridDataSet.insertRow
GridDataSet.appendRow
GridDataSet.updateRow
GridDataSet.deleteRow
GridDataSet.insertRows
GridDataSet.appendRows
GridDataSet.updateRows
GridDataSet.deleteRows
GridDataSet.onRowUpdating
GridDataSet.onRowUpdated
GridDataSet.onRowInserting
GridDataSet.onRowInserted
DataSet.onRowCountChanged
Examples
State Cells
Grid DataSet Rows