넥사크로 그리드 헤더 클릭시 정렬하는 소스
최근 프로젝트에서 모던JS와는 만리장성을 쌓은 넥사크로툴을 사용중인데 그리드 헤더 클릭시 정렬하는 부분을 직접 만들어야 한다고 해서 소스를 만들었다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| this.executeGridSort = function (obj,e) { var ARROW_ASC = "↑"; var ARROW_DESC = "↓"; var sortStr = "S:"; if(!obj.sortObj) obj.sortObj = new Object(); var bindDs = obj.getBindDataset(); var targetID = bindDs.getColumnInfo(e.cell).id; if(obj.sortObj[targetID]) { if(obj.sortObj[targetID] === ARROW_ASC) { obj.sortObj[targetID] = ARROW_DESC; obj.setCellProperty("head", e.cell, "text", obj.getCellText(-1, e.cell).substr(0,obj.getCellText(-1, e.cell).length-1)+ARROW_DESC); } else if (obj.sortObj[targetID] === ARROW_DESC) { delete obj.sortObj[targetID]; obj.setCellProperty("head", e.cell, "text", obj.getCellText(-1, e.cell).substr(0,obj.getCellText(-1, e.cell).length-1)); } } else { obj.sortObj[targetID] = ARROW_ASC; obj.setCellProperty("head", e.cell, "text", obj.getCellText(-1, e.cell)+ARROW_ASC); } for(var prop in obj.sortObj) { if(obj.sortObj.hasOwnProperty(prop)) { if(obj.sortObj[prop] == ARROW_ASC) { sortStr += "+" + prop; } else if (obj.sortObj[prop] == ARROW_DESC) { sortStr += "-" + prop; } } } if(sortStr !== "S:") { bindDs.set_keystring(sortStr); } }
|
위의 코드는 직접 만들었고 그리드에서 onheaderclick 함수를 만들어서 함수에서 주어지는 파라미터인 obj, e를 그대로 넣어서 던지면 된다.
다른 방법도 있을것 같지만 이 유사 JS개발툴은 뭘 알려주질 않아서 모르겠다.