적어도 직접적으로는 할 수 없습니다. MultiSelect
은 제가 생각하기에 가장 간단한 위젯 중 하나이며 단지 래퍼입니다. 이것은 특별한 기능이 포함되어 있지 않다는 것을 의미하며 정렬 기능을 원할 경우 직접 작성해야합니다.
직접 작성하는 가장 좋은 방법은 위젯을 확장하는 것입니다. 예 :
declare("dijit/form/MultiSelect", [MultiSelect], {
sort: function() {
var domNodes = Array.prototype.slice.call(this.containerNode.children);
domNodes.sort(function(a, b) {
if (a.innerHTML < b.innerHTML) {
return -1;
} else if (a.innerHTML == b.innerHTML) {
return 0;
} else {
return 1;
}
});
this.containerNode.innerHTML = "";
array.forEach(domNodes, function(node) {
this.containerNode.appendChild(node);
}, this);
}
});
이것은 매우 쉽습니다. sort()
이라는 함수를 추가 한 다음 모든 자식 목록을 검색하고 배열의 sort()
함수를 사용하여 이러한 자식을 정렬 한 다음 모든 자식을 제거하고 정렬 된 자식을 추가합니다.
이제 이것을 사용하려면 addSelected()
을 실행 한 직후에 dijit.byId(leftListId).sort()
과 같은 것을 할 수 있습니다.
예제 JSFiddle은 here입니다.
dojo 툴킷의 위젯은 사용자가 대체 할 수 있도록 많은 이벤트 핸들러를 제공합니다. 어떤 이벤트를 감지 할 수 있는지 보려면 http://dojotoolkit.org/api/를 확인하십시오. – undefined