SMART datagrid v1.4 > Classes > DataField

[ grids ver.1.4.3]   Back  Forward

DataLudi.DataField.compareTextCallback  property

TEXT 필드에 연결된 컬럼을 정렬할 때, 두 셀값을 비교하기 위해 호출하는 콜백함수. 

function (v1, v2): Integer;

v1, v2 두 값을 비교해서 v1이 크면 1, v2가 크면 -1, 그렇지 않으면 0을 리턴해야 한다. 

기본값은 null.

Getter
function compareTextCallback(): Function
Setter
function setCompareTextCallback(value: Function)

아래의 샘플처럼 text로 되어있는 필드의 값이 모두 숫자 일경우 숫자로 정렬되게 할수있다. 

콜백함수의 scope은 GridDataSet 이다. 

Code -1

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 );
		}
	},
    ...
}]);
See Also
dataType
ValueType