컬럼 유효성 검사
행 편집 중에 각 셀의 사용자 편집이 끝나면 셀 컬럼에 설정된 컬럼 validation들을 순서대로 실행합니다.
컬럼 Validations는 데이터필드가 아니라 컬럼 단위로 설정됩니다.
예제에서 “Quantity 2” 컬럼은 “Quantity”와 같이 “Quantity” 데이터필드를 참조하지만 Validation 설정이 없으므로 에러가 발생하지 않습니다.
Validation.criteria 수식에 어긋나는 입력이면 Validation.level 에 해당하는 에러 상태가 되고, 그리드 EditOptions.commitLevel 지정에 따라 에러 상태의 행은 편집을 완료(commit)할 수 없게 됩니다.
Level은 "error"
, "warning"
, "info"
세 단계로 지정할 수 있습니다.
에러 상태는 셀의 오른쪽에 아이콘
으로 표시되고, Validation.message
에 지정된 메시지를 팝업 시킵니다.
Valiadtion은 mode 설정에 따라 행 수정 시에만 검사할 지, 새로운 행 추가 시에만 검사할 지 혹은 모든 경우에 검사할 지를 지정할 수도 있습니다.
Validation criteria를 만족하지 않으면 에러가 됩니다.
즉, 실패 판정식이 아니고 성공 판정식입니다.
Validation 적용시키고 Quantity컬럼
의 데이터를 수정해서 유효성 검사가 정상적으로 이루어지는지 확인해보세요.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
validations = [{
criteria: "value > 100",
message: "Quantity는 100보다 커야 합니다!",
mode: "always",
level: "error"
}, {
criteria: "value < 200",
message: "Quantity는 200보다 작아야 합니다!",
mode: "always",
level: "warning"
}, {
criteria: "value <> 150",
message: "Quantity 값은 150과 달라야 합니다!",
mode: "always",
level: "info"
}];
var column = gridView.columnByName("Quantity");
column.validations = validations;
gridView.setColumn(column);
validations = [{
criteria: "value is not empty",
message: "CustomerID는 반드시 필요합니다.",
mode: "always",
level: "error"
}];
column = gridView.columnByName("CustomerID");
column.validations = validations;
gridView.setColumn(column);
//다른 컬럼 값 참조(1.1.30버전 이상)
validations = [{
criteria: "values['UnitPrice'] > 10",
message: "UnitPrice는 10보다 커야합니다.",
mode: "always",
level: "error"
}];
column = gridView.columnByName("UnitPrice");
column.validations = validations;
gridView.setColumn(column);