====== grd_sort 가이드 ======
soft_func 속성 및 setcolumnsoftfunc API에 대한 예시 화면이다.
soft_func 속성은 정렬 처리시 커스텀 정렬 비교 함수를 수행하기 위한 기능을 제공한다.
on_sortcomplete 이벤트는 정렬 완료시 발생하는 이벤트이다.
===== 예시 =====
setcolumnsoftfunc 함수 호출후, 그리드 헤더를 클릭해서 기능 확인
템플릿 위치: /HTML5/COMPONENT/GRID/grid_sort_func
템플릿 파일
* [[xf5projecthome>template/screen/HTML5/COMPONENT/GRID/grid_sort_func.xml|grid_sort_func.xml]]
* [[xf5projecthome>template/screen/HTML5/COMPONENT/GRID/grid_sort_func.js|grid_sort_func.js]]
* [[xf5projecthome>template/template.html?xframe_screen_url=/HTML5/COMPONENT/GRID/grid_sort_func|새창으로 실행]]
echo '';
echo '';
echo '';
==== 화면 스크립트 ====
/**
* 그리드 사용자 정의 정렬 함수, 관련 함수(setcolumnsortfunc, getcolumnsortfunc)
* @param objInst 그리드 오브젝트
* @param nColumn 그리드 칼럼 인덱스 (Zero-Based)
* @param nSortOrder 정렬 순서 (XFD_GRID_SORT_ASC(1), XFD_GRID_SORT_DES(2))
* @param nDataType 그리드 데이터 형식
* (XFD_GRID_DATA_NUMERIC(0), XFD_GRID_DATA_ALPANUM(1), XFD_GRID_DATA_HANGUL(2)
* @param strValueA 비교 대상 값 A
* @param strValueB 비교 대상 값 B
* @return 정렬 순서가 XFD_GRID_SORT_ASC인 경우, 아래의 기준에 따름,
0: strValueA와 strValueB 값이 같은 경우,
1: strValueA와 strValueB 보다 값이 큰 경우
-1: strValueA와 strValueB 보다 값이 작은 경우
정렬 순서가 XFD_GRID_SORT_DES인 경우, XFD_GRID_SORT_ASC와 반대 값
*/
function GridSortFunc(objInst, nColumn, nSortOrder, nDataType, strValueA, strValueB)
{
var nValue1, nValueB;
factory.consoleprint("GridSortFunc> nColumn = " + nColumn + ", nSortOrder = " + nSortOrder + ", nDataType = " + nDataType);
factory.consoleprint("GridSortFunc> strValueA = " + strValueA + ", strValueB = " + strValueB);
if (nDataType == XFD_GRID_DATA_NUMERIC) {
nValueA = parseFloat(strValueA);
nValueB = parseFloat(strValueB);
if (nSortOrder == XFD_GRID_SORT_ASC) { return nValueA - nValueB; }
else if (nSortOrder == XFD_GRID_SORT_DES) { return nValueB - nValueA; }
else { return 0; }
}
else {
if (strValueA == strValueB) { return 0; }
if (nSortOrder == XFD_GRID_SORT_ASC) { return strValueA > strValueB ? 1 : -1; }
else if (nSortOrder == XFD_GRID_SORT_DES) { return strValueA > strValueB ? -1 : 1; }
else { return 0; }
}
}
// "getcolumnsortfunc" 버튼 이벤트
function btn_getcolumnsoftfunc_on_mouseup(objInst)
{
// 0번째 칼럼에 지정된 정렬 함수 이름 출력
factory.consoleprint("sortfunc = [" + this.grdList.getcolumnsortfunc(0) + "]");
}
// "setcolumnsoftfunc" 버튼 이벤트
function btn_setcolumnsoftfunc_on_mouseup(objInst)
{
// 0번째 칼럼에 대한 정렬 함수 지정
this.grdList.setcolumnsortfunc(0, this.fld_sortfunc.gettext());
}