SMART datagrid v1.4 > Classes > DataField
TEXT 필드에 연결된 컬럼을 정렬할 때, 두 셀값을 비교하기 위해 호출하는 콜백함수.
v1, v2 두 값을 비교해서 v1이 크면 1, v2가 크면 -1, 그렇지 않으면 0을 리턴해야 한다.
기본값은 null.
아래의 샘플처럼 text로 되어있는 필드의 값이 모두 숫자 일경우 숫자로 정렬되게 할수있다.
콜백함수의 scope은 GridDataSet 이다.
ds.setFields([{
fieldName: 'company',
dataType: 'text',
compareTextCallback: function(field ,row1 ,row2){
var val1 = this.getValue(row1,field); /*ds.getValue(row1,field )와동일하다*/
var val2 = this.getValue(row2,field); /*ds.getValue(row2,field )와동일하다*/
if (val1 === undefined || val1 === null) {
return (val2 === undefined || val2 === null) ? 0 : -1;
}
if (val2 === undefined || val2 === null) {
return 1;
}
try {
var num1 = +val1;
var num2 = +val2;
if (isNaN(num1) || isNaN(num2)) {
throw "error";
}
return num1 > num2 ? 1 : (num1 == num2 ? 0 : -1 );
}
catch (err) {
return val1 > val2 ? 1 : (val1 == val2 ? 0 : -1 );
}
},
...
}]);