SMART datagrid v1.4 > 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
행 수정