树的一个必不可少的功能就是要支持异步取数据,因为就算构造树的算法再精妙,当数据量大的时候(如人员结构),也会出现性能瓶颈。当然,这也是我这次改动的主旨。
前台调用代码如下:
Tree.Settings.OnNodeClick = function(node) {
alert(node[Tree.NodeProperties.Name]);
}
Tree.Settings.AsyncLoadUrl = "GetNodes.ashx";
Tree.Settings.Async = true;
var oDiv = document.getElementById("test");
var nodes = eval('<%=strNodes %>');
Tree.BuildTree(oDiv, nodes);
alert(node[Tree.NodeProperties.Name]);
}
Tree.Settings.AsyncLoadUrl = "GetNodes.ashx";
Tree.Settings.Async = true;
var oDiv = document.getElementById("test");
var nodes = eval('<%=strNodes %>');
Tree.BuildTree(oDiv, nodes);
1.OnNodeClick是点击节点名称时触发的事件,参数node会包含节点的所有属性.
2. AsyncLoadUrl和Async是成对出现的,当设置Async时必须设置AsyncLoadUrl
3. strNodes是初始加载的节点
这样, 一棵仅用来展示数据的树就算基本完成了。
接下来继续完善:
1.UI
2.性能优化
也请大家多多指正