转载的,原址:http://max.cszi.com/archives/1296
网上资源太少,好不容易在stackoverflow上搜到一个可以用的,本来想自己手写一份的,但是正好网上找到了一篇不错的,所以,嘿嘿嘿。。。
话不多说,直接看代码:
$().ready(function(){
vartree=$('#tree');
tree.jstree({'core':{data:null}});
$("#xreload").on("click",null,function(e){
//e.preventDefault();
varurl=$(this).attr("data-url");//+ "?" + Math.random();
ajax.get(url,null,"json",function(json){
tree.jstree(true).settings.core.data=json;
tree.jstree(true).refresh();
//console.debug("reloaded.");
});
});
});
关键点:tree.jstree(true).settings.core.data = json;
tree.jstree(true).refresh();
-------------------我是分界线---------------------------
然而,追求完美的我并不愿意在这里止步,我们需要更好的营养。。。
比如我后台返回的json是个map类型的,就是那种{result:ok, deptTree:[{...}, {...}]}这种形式的数据该怎么和jstree结合呢?
在论坛(jstree的讨论地址:https://groups.google.com/forum/#!forum/jstree)上看到的是使用dataFilter,另外多说一句,貌似jstree的作者回复率也比较高。
上代码吧:
$("#deptTree").jstree({
core:{
multiple:false, //设置为单选
data:{
url:"getDeptsJuiceDeptAction",
dataFilter:function(data){
var json = JSON.parse(data)
return JSON.stringify(json.deptTree);
}
},
strings: {
'Loading ...' : '正在加载...'
}
}
});
关键点:
其中deptTree是上述{result:ok, deptTree:[{...}, {...}]}这种格式的deptTree。
dataFilter:function(data){
var json = JSON.parse(data)
return JSON.stringify(json.deptTree);
}
现在来看比较地完美,先到这里。