EasyUI Forum
April 19, 2024, 09:24:09 PM *
Welcome, Guest. Please login or register.

Login with username, password and session length
News:
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: iterate through all levels of tree and sort folders by name  (Read 3388 times)
devnull
Sr. Member
****
Posts: 431


View Profile
« on: November 09, 2017, 10:42:41 PM »

Is it possible to iterate through all levels of a tree and sort folders (branches) by text field ??

I looked through the api for the tree but don't see anything ?

Thanks
« Last Edit: November 09, 2017, 11:40:19 PM by devnull » Logged

-- Licensed User --
jarry
Administrator
Hero Member
*****
Posts: 2262


View Profile Email
« Reply #1 on: November 10, 2017, 12:49:58 AM »

The 'sort' method can be extended as below:
Code:
(function($){
function sortData(target, order){
order = order || 'asc';
var rows = $(target).tree('getRoots');
_sort(rows);
$(target).tree('loadData', rows);
function _sort(rows){
rows.sort(function(r1,r2){
var sortFunc = function(a,b){
return a==b ? 0 : (a>b?1:-1);
};
return sortFunc(r1.text,r2.text) * (order=='asc'?1:-1);
});
for(var i=0; i<rows.length; i++){
var children = rows[i].children;
if (children && children.length){
_sort(children);
}
}
}
}
$.extend($.fn.tree.methods, {
sort: function(jq, order){
return jq.each(function(){
sortData(this, order);
});
}
});
})(jQuery);

Usage example:
Code:
$('#tt').tree('sort', 'asc');
$('#tt').tree('sort', 'desc');
Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!