Slickgrid의 기본 유효성 검사는의 validate
기능으로 제한되어 있으며 사용 가능한 validator
이 매개 변수로만 전달되는지 확인합니다. 추가 컨텍스트 정보를 제공하려면 사용자 정의 편집기가 필요합니다. 특히 사용자 정의 유효성 검사 기능이 필요합니다.
this.validate = function() {
if (args.column.validator) {
args.newValue = $input.val()
var validationResults = args.column.validator(args);
if (!validationResults.valid) {
return validationResults;
}
}
return { valid: true, msg: null };
};
각 열은 다음 기본값에 대해 점검 할 것이다 내에서 검증이 필요한 것 중 하나 편집기에서 오는 새 값 또는 다른 필수 검증 측면과 함께 기존 값.
var Validator = function(args) {
//validate the existing value or the incoming editor value
var value = args.newValue ? args.newValue : args.item[args.column.field]
var result = value > 0
return {valid: result}
}
전체 표의 유효성을 검사하려면 유효성 검사기의 각 열을보고 각 행을 반복하는 유효성 검사 방법을 제공하십시오. 유효성 검사 결과에 따라 rowIndex -> collection of failures
의 관계형 매핑은 네이티브 onValidationError
이벤트로 전달되도록 구축됩니다. 이렇게하면 구독이 오류 존재에 대한 사용자 알림을 처리 할 수 있습니다. 또한, 검증 결과는 providing specific metadata to the grid
var validateColumns = function(args){
var failures=[];
for (c in columns) {
var column = columns[c]
if (column.validator) {
if(!column.validator({row: args.row, item: args.item, column: column}).valid){
failures.push({columnIndex: c, column: column, rowIndex: args.row, item: args.item})
}
}
}
return failures;
}
grid.validate = function() {
var rowFailures = {}
for (r in data) {
//ignore our metadata provider (if applicable)
if(r == 'getItemMetadata'){continue;}
var failures = validateColumns({item: data[r], row: r})
if(failures.length > 0){
rowFailures[r] = failures;
}
}
if(Object.keys(rowFailures).length > 0){
grid.onValidationError.notify({"rowFailures": rowFailures}, new Slick.EventData())
}
}
당신은 당신이 "작업"이 부분을 위임 할 수있는 다른 프레임 워크를 사용하고 있습니까에 의해 스타일의 실패로 사용할 수 있습니까? 이미 보았 듯이 Slickgrid의 기본 유효성 검사는 값만 매개 변수로 전달되는'editor' 함수의'validate' 함수에만 제한됩니다. 원하는 동작을 달성하기 위해 소스를 수정할 수 있지만 개인적으로이 유형의 유효성 검사를 다른 프레임 워크 (즉 [Knockout Validation] (https://github.com/Knockout-Contrib/Knockout-Validation))에 위임합니다. 비록 내가이 경험을 가진이 조합에 부분적이지만. – Origineil
아니요, 내장 된 SlickGrid 유효성 검사를 계속 사용하는 것이 좋습니다. – jlarson
전체 격자 검증에 대한 [데모 시작] (http://jsfiddle.net/origineil/nLpzjL32/)을 작성했습니다. 'validate' 버튼은 각 데이터 입력에 대해'validator'라고 정의 된 열을 실행합니다. * 기본 유효성 검사 오류 동작 *은 편집기 입력 필드의 종료를 허용하지 않으므로 원하는 오류 처리를 구현해야하는 위치를 나타내는 셀 깜박임을 추가했습니다. 둘째, 어떤 디폴트 값이 될지 모르겠다. 그래서 나는> 0이라는 조건을 가진 숫자만을 사용했다. – Origineil