##第一次 虽能实现效果,但响应很慢。因为数据比较多,要5-6秒,这样果断的放弃了。
后台
一般的取值,但是最开始时只取到用户的地域。userZone:37
jsp
在onloadsuccess
方法中处理:展开所有的节点后,使用setValue
方法。
onLoadSuccess: function(node, data) {
var userZone = $('#userZone').val();
if(!isBlank(userZone)){
var t = $("#zoneComboTree").combotree('tree');//获取tree
for (var i=0;i<data.length ;i++ ){
node= t.tree("find",data[i].id);
t.tree('expandAll',node.target);//展开所有节点
}
$("#zoneComboTree").combotree('setValue',value);//在设置一下combotree的值即可,value为你想选中的那个值,一般从后台取出来在设置的
}else{
var node = $('#zoneComboTree').combotree('tree').tree('getRoot');
$('#zoneComboTree').combotree('tree').tree('expand', node.target);
}
},
第二次 只展开需要展示的地域
后台
取得用户地域的完整路径userZone:37,zonePath:1#36#37
jsp
$(function (){
//默认的树状结构展示
initComboTree();
var zonePath = $('#zonePath').val();
var zoneArray ;
if(!isBlank(zonePath)){
zoneArray = zonePath.split('#');
var url="******";
var $tree = $('#zoneComboTree').combotree("tree");
for(var i = 0; i<zoneArray.length;i++){
//获取节点
var node = $tree.tree("find", zoneArray[i]);
loadComboTreeChild(url,node,'zoneComboTree');
}
}
});
function loadComboTreeChild(url,node,componentId){
$.ajax({
type: "GET",
url:url,
dataType:"json",
async : false,
data:{"parentId" : node.id},
success:function(data, textStatus){
$('#'+componentId).combotree('tree').tree('append', {
parent: node.target,
data: data.result
});
}
});
}jiek