jQueryEasyUI树使用加载JSON数据异步(盛成树)
这些天,你需要做一个菜单,支持无限的水平,因为工作的需要。我也是菜鸟。我想不多,所以我使用易UI的树组件。
我不得不说,EasyUI真的很强。
因为它是一个无限级菜单,所以数据量可能有点大,所以它被认为是使用异步加载。
但是,因为后台的默认数据是一个实体,所以在后台进行JSON字符串拼接。
最后,在网上找N代码,然后问了几组朋友,终于得到了这个小东西。
一、HTML代码的一部分
HTML部分非常简单,只要你设置了一个UL。
二、js部分代码
功能showcategory(){
$(# mytree)。Tree({
复选框:false,
网址: /分类/ getcategorys Javaid = 0,
OnBeforeExpand:功能(节点参数){
$(# mytree)。Tree(选项)。url = / / getcategorys范畴。该=+ node.id;
},
OnClick:功能(节点){
无功状态= node.state;
(如果!)确定当前选中的节点是否为根节点。
node.id电流Id =;
$(#chooseOk).Attr (disabled, false); / / if the OK button is available for the root node
其他{ }
$(# chooseok )Attr(残疾人。
}
}
});
}
最后几行代码是由于该项目的需要,只有当您选择要运行的最低节点时,单击确定,否则,不允许。
当用户单击以确定时,您需要获取当前用户选定节点的所有父节点。
var节点定义了用于存储每个节点的数组。
var node =美元(# mytree)。Tree(当选); / /当前选定节点
Nodes.push(节点。文本); / /先置于当前节点
VaR pNode =美元(' # mytree)。Tree('getparent节点。目标); / /获取当前节点的父节点
而(Pnode!= NULL){
Nodes.push(Pnode。文本); / /变成每个父节点,直到根节点为止
= $(#指向mytree)。Tree('getparent,目标指向。);
}
(节点反向);逆顺序的数组元素
每个(节点,函数)
这个;
$(# incategorydiv ).html($(# incategorydiv)。Html()+ HTML +> >);
});
事实上,主要的问题在于在背景中,这是数据的处理,如何转化为JSON数据可以通过EasyUI的树。
三、后台代码(java)
公共responseentity FindBy(ID){
列表类= getcategorys(ID);
字符串;
}{{ };
对(类:类)
{
;
/ / SS = 我:(+范畴。GetID)+
列表CS = getcategorys(category.getid()); / /确定当前节点和子节点
如果(cs.size(= = 0)){ / /没有子节点集的状态是空的
SS + = string.format(我:%s
否则,将子状态设置为关闭节点。
SS + = string.format(我:
}
;
}
SS = ss.substring(0,ss.length)-(1);
+;
返回super.responsestring(SS); / /字符编码转换
}
一般的过程是前面来的ID,然后找到真正的对象,那么实体的循环,然后串在这里设置状态的意义是给EasyUI树可以知道当前节点是否是最低的节点,然后显示在前面的一个不同的图标。
总结:
就是这个小东西,花了我几天的时间,呵呵,因为我太笨了,但最后明白了,也懂了很多。
我曾经认为JSON是一个神秘的东西,现在我认为它是规则的。
一个使用easyui树的关键是处理JSON数据,有两种方式来实现:第一,使用字符串的格式的方法。你可以去网上查阅相关的API等。第一次,我写错了路。字符串的占位符应该是%s。在我知道问题之前我已经写了{ 0 }。第二种方法,就是我上面注释的那一行,直接使用字符串拼接。
然后,当我们得到当前节点的所有父节点时,我们会纠缠很长时间。我们在因特网上找不到很多代码。最后,我们只有在解决问题之前仔细考虑一下。
优点:异步加载可用于支持无限级。
缺点:太麻烦了,后台的数据格式太高了。
以上是本文的全部内容,希望能对您有所帮助,希望大家多多支持。