안녕한세요 메시어스입니다.
문의하신 정렬 순서를 변경하기 위해서는 그리드의 allowSorting 속성을 false로 설정하신 뒤, 그리드 열 헤더를 클릭 할 때, 기존 정렬을 clear 메서드로 삭제하고 정렬 기준을 정의하는 SortDescription에 정렬 규칙을 새로 삽입하시기 바랍니다.
관련 코드를 공유드리오니 참고 부탁드립니다. 코드에서는 country 열을 제외한 나머지 열들은 내림차순, 오름차순, 정렬해제 순으로 처리하고 있습니다.
// collectionView 생성
let view = new wijmo.collections.CollectionView(getData());
// 그리드 생성
var theGrid = new wijmo.grid.FlexGrid('#theGrid', {
itemsSource: view,
allowSorting: false,
});
// 그리드 클릭 이벤트 핸들러 theGrid.hostElement.addEventListener("click",function(e){
var ht= theGrid.hitTest(e)
if(e.panel === theGrid.columnHeader){ // 클릭한 영역이 열 헤더이면
var col = theGrid.columns[ht.col] // 클릭한 열의 정보
if(col.currentSort === "-"){ // 내림차순일 때
clearSorting(); // 정렬 clear
if(col.binding !== "country"){ //country가 아닐 때
sortingChange(col.binding,true) //정렬 설정
}
} else if (col.currentSort === "+"){ //오름차순일 때
clearSorting();
if(col.binding ==="country"){ // 바인딩된 열이 country이면
sortingChange(col.binding,false)
}
} else if(col.currentSort === null){ // 정렬이 해제되었을 때
clearSorting();
sortingChange(col.binding,col.binding === "country")
}
}
})
function sortingChange(binding, ascending){
// 정렬 규칙 삽입
view.sortDescriptions.push(new wijmo.collections.SortDescription(binding, ascending))
}
function clearSorting(){
//기존 정렬 삭제
view.sortDescriptions.clear();
}
다른 궁금한 점이 생기면 문의주시기 바랍니다.
감사합니다.
메시어스 드림