SMART datagrid v.1 > Examples

Back  Forward

Set RowCount  Example

我们可以通过调用GridDataSet.setRowCount,预先指定或变更数据组的大小。 这时,可以空出所添加的行的值。 也就是说,GridDataSet的行中,可能不存在实际值,并且可以在指定rowCount之后的适当时点, 通过updateRowupdateRows而填充空行的值。 

如果使用setRowCount,就可以在海量数据或网络带宽较窄的情况下,体现适当的UI。 可以通过hasData方法,确认各个行中是否已有重置实际值。 下列例题中,设置空行的数量为5,并且通过调用DataSet.updateRow,只为0、2、4行填充值。 

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
设置数据行