SMART datagrid v.1 > Examples

Back  Forward

Grid DataSet Edit  Example

可以连接到GridViewGridDataSet,在数据组被重置后,将会提供变更数据组的几种方法。 有关在应用初期,重置网格数据组的方法,请参考LoadCsvDataSetDataRows等例题。 

本次例题中,我们将会了解添加一个以上的行或变更和删除现有行的方法。 

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 + '在行位置上,添加了新的行。');  
    };

修改指定行的值。 如果stricttrue,传递至undefined的字段值将不会发生变更。 如果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.insertRowsGridDataSet.appendRowsGridDataSet.updateRows。 

我们也可以同时删除一个或多个数据行。 

删除指定行。 

同时删除一个以上的指定行。例题中,删除被Checked的行。 

有关删除事件等的详细说明,请分别参考GridDataSet.deleteRowGridDataSet.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
状态单元格
网格数据组行