SMART datagrid v.1 > Classes > GridDataSet

Back  Forward

DataLudi.GridDataSet.updateValues  method

将符合通过参数where而指定的条件的数据行的值,修改为通过newValues而传递的值。 

where可以是表达式字符串或回调函数。 newValues是包含想要变更的字段的JSON对象。在各个字段的值中,可以指定返回字段值的回调函数。 

如果checkDifftrue,就只有在比较newValues的值与现有字段值并且一个以上的字段值不同时,才会修改行。 如果strictDifftrue,就会与DataField.equalValuessameValues比较。 如果noStatetrue,就不会变更数据行的状态。 

function updateValues (where: String|Function, newValues: Object, checkDiff: Boolean, strictDiff: Boolean, noState: Boolean);
Returns
Void
Parameters
where - String|Function. 默认值为null.
newValues - Object. required.
checkDiff - Boolean. 默认值为false.
strictDiff - Boolean. 默认值为false.
noState - Boolean. 默认值为false.
Table-1  可以被用于where判别式的变量
变量说明
'row'数据行索引。
'values'字段值。'values[field]'。可以将field指定为字段索引或字段名称。
'state'数据行状态CREATED'c', UPDATED'u', DELETED'd' CREATE_AND_DELETED'x'
Code -1
    // 向where传递判别式。
    dataset.updateValues(
        "values['flow'] == 'import'",   // where
        { amount: 100, active: false }, // newValues
        false, false, false);
    }
Code -2
    // 在where指定callback。
    dataset.updateValues(
        function (ds, row, values) {    // where
            retrun values[0] == 'import';
        },
        { amount: 100, active: false }, // newValues
        false, false, false);
    }
Code -3
    // 向字段值传递判别式。
    dataset.updateValues(
        "values['flow'] == 'import'",   // where
        {                               // newValues
            amount: 100, 
            active: function (ds, row, field) {
                if (ds.getValue(row, 0) == 'import') {
                    return true;
                }
                return false;
            }
        }, 
        false, false, false);
    }
See Also
onStatesChanged
onRowsUpdated
updateRows
Examples
行修改