SMART datagrid v.1 > Classes > GridDataSet

Back  Forward

DataLudi.GridDataSet.updateValues  method

パラメーターwhereで指定した条件に合うデータ行の値たちをnewValuesで渡された値たちで修正する。 

where数式文字列であったり、コールバック関数であり得る。 newValuesは変更したいフィールド達が含まれたjson客体である。各フォール度の値にはフィールドの値をリターンするコールバック関数が指定できる。 

checkDifftrueならnewValuesの値と既存のフィールドの値を比較して一つ以上のフィールドの値が異なる場合にだけ行を修正する。 strictDifftrueならDataField.equalValuesで比較して、sameValuesで比較する。 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
行の修正