
对于zTree树控件,节点的默认提示信息title是节点的name,也就是默认显示节点的名称。你认真了解zTree,不难发现主要是key值在作祟:
view sourceprint
1var setting = {
2data: {
3key: {
4title: "s"//这里的s表示节点内的s属性
5},
这里的key内的title默认指向的就是name属性,或者为空,为空的时候也会默认为name属性。
针对这位朋友的问题,其实方法很多:
1、在后台构造属性
在ajax页面内从数据库拿到数据list过后通过new的形式给最终返回的json对象构造一个属性t出来。然后修改setting内key的title指向属性值为t即可。
返回的json对象数据为:
view sourceprint
1var zNodes =[
2{ id:1, pId:0, name:"节点搜索演示 1", t:"节点提示信息1", open:true},
3{ id:11, pId:1, name:"关键字可以是名字", t:"节点提示信息2"},
4{ id:12, pId:1, name:"关键字可以是level", t:"节点提示信息3"}
5];
修改setting内对应的key值
view sourceprint
1var setting = {
2data: {
3key: {
4title: "t"//这里的s表示节点内的s属性
5},
2、动态修改树节点的属性
当前台给zTree树对象赋值结束后获取所有树节点,然后逐个更新树节点的属性值,示例代码如下所示:
view sourceprint
01$(document)ready(function () {
02$fnzTreeinit($("#treeDemo"), setting, zNodes);
03//获取树对象
04var treeObj = $fnzTreegetZTreeObj("treeDemo");
05//拿到所有树节点
06var nodes = treeObjgetNodes();
07//for循环逐个修改树节点属性
08for(var i = 0;i 09{
10nodes[i]t = "可以自定义排序";
11//更新节点
12treeObjupdataNode(nodes[i]);
13}
14});
当前如果只是修改部分节点可以在for内加以控制,如果是只更新指定节点可以通过getNodeByParam("属性名称","值",父节点对象)找到指定对象,形如:
view sourceprint
1//给节点追加属性
2var treeObj = $fnzTreegetZTreeObj("treeDemo");
3var node = treeObjgetNodeByParam("id", 1, null);
4nodes = "可以自定义排序";
5treeObjupdateNode(node);
这里主要用到的是autoParam属性,
这个属性的默认值是[],其实可以在后台直接得到节点id
例如java后台可以直接用
String
id
=
requestgetParameter("id");
当然你也可以像下面这样指定传输id
var
setting
=
{
async:
{
enable:
true,
url:
"getNodedo",
autoParam:
["id"]
}
};
另外这个id属性你可以自定义,如
var
setting
=
{
async:
{
enable:
true,
url:
"getNodedo",
autoParam:
["id=zId"]
}
};
后台用
String
id
=
requestgetParameter("zId");就好了
最简单的办法,其实就是拼写字符串,你怎么拼出来 web页面的html内容的?? 那么只需要按照 json格式拼出全部字符串即可。
可以参考 异步加载 Demo 中得到的数据(请利用 chrome 的调试工具进行跟踪调试)
如果对象比较复杂,那么可以在谷歌上搜索一下:“java json 输出” 会有很多教程和 lib 推荐。
以上就是关于如何动态更新节点数据全部的内容,包括:如何动态更新节点数据、zTree异步加载怎样在后台获取节点id问题、ztree 如何动态设置节点图标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)