SMART datagrid v1.4 > Examples

Back  Forward

Set RowCount  Example

GridDataSet.setRowCount를 호출해서 데이터셋의 크기를 미리 정하거나 변경할 수 있다. 이 때 추가되는 행의 값들을 비워 놓을 수 있다. 즉, GridDataSet의 행은 실제 값이 존재하지 않을 수 있고, rowCount를 지정한 후 적절한 시점에 updateRow나 updateRows로 빈 행들의 값을 채울 수 있다. 

setRowCount를 이용하면 대용량 데이터나, 네트웍 대역폭이 좁은 경우 등에서 적절한 UI를 구현할 수 있다. 각 행에 실제 값을 초기화 했는 지 여부는 hasData 메소드로 확인할 수 있다. 아래 예제에서는 비어있는 행 개수를 5로 설정하고, 0, 2, 4 행들만 DataSet.updateRow 호출로 값을 채운다. 

Grid - 1
rows

포커스 행의 값이 초기화 됐는 지 확인한다. 

Code -1
    btnCheckRow_click: function () {
        var row = grdMain.focusedDataRowIndex();
        if (row >= 0) {
            alert(dsMain.hasData(row) ? '데이터 행 존재 ' : '데이터 행 없음');
        }
    }

빈 행의 값을 수정한 후 다시 확인해 본다. 

초기값 지정

GridDataSet 호출 시 초기 값과 행 상태를 지정할 수 있다. 아래 그리드에서는 설정에 따라 rowCount를 2 행씩 증가 시킨다. 

Row State:
Grid - 2
rows

setRowCountfillDefaultsdefaultValues가 모두 지정되고, defaultValues의 해당 필드값이 undefined가 아니면 필드의 기본값 대신 defautlValues의 값으로 초기화된다. 

아래 예제에서는 rowCount를 1000으로 미리 설정한 후 setTimeout을 이용해서 비동기적으로 5행씩 값을 채워 넣는다. 

Code -2
    btnRun_click: function () {
        dsMain3.setRowCount(1000);
        for (var i = 0; i < 200; i++) {
            (function (start) {
                setTimeout(function () {
                    var rows = [];
                    for (var r = 0; r < 5; r++) {
                        rows.push(['aaa', 'bbb', start + r, 'ccc']);
                    }
                    dsMain3.updateRows(start, rows);
                }, Math.random() * 10000);
            })(i * 5);
        }
    }
Grid - 3
rows

소스보기 JSP 

See Also
GridDataSet.setRowCount
GridDataSet.hasData
GridDataSet.clearRows
GridDataSet.updateRow
GridDataSet.updateRows
DataSet.onRowCountChanged
Examples
Set Data Rows