Ext.tree.LocaleTreeSorter = Ext.extend(Ext.tree.TreeSorter, {constructor:function (tree, config) {
Ext.tree.LocaleTreeSorter.superclass.constructor.call(this, tree, config);
var dsc = this.dir && this.dir.toLowerCase() == "desc";
var fs = this.folderSort;
var leafAttr = this.leafAttr || "leaf";
this.sortFn = function (n1, n2) {
if (fs) {
if (n1.attributes[leafAttr] && !n2.attributes[leafAttr]) {
return 1;
}
if (!n1.attributes[leafAttr] && n2.attributes[leafAttr]) {
return -1;
}
}
var ret = n1.text.localeCompare(n2.text);// text按照中文名称排序,改为id 按照id排序
if (ret < 0) {
return dsc ? +1 : -1;
} else {
if (ret > 0) {
return dsc ? -1 : +1;
} else {
return 0;
}
}
};
}});
今天改一个以前别人写的代码,发现树也可以设置排序,代码如下
new Ext.tree.TreeSorter(tree,{folderSort:true,dir:'desc'});