EXTJS:如何把Json数据绑定到tree菜单上
这是从数据库读出并转换的一级目录[{"MenuId":1,"MenuName":"我的工作","MenuPraentId":0,"MenuType":"Folder","...
这是从数据库读出并转换的一级目录
[
{"MenuId":1,"MenuName":"我的工作","MenuPraentId":0,"MenuType":"Folder","MenuURL":""},
{"MenuId":2,"MenuName":"行政人事","MenuPraentId":0,"MenuType":"Folder","MenuURL":""},
{"MenuId":7,"MenuName":"考勤管理","MenuPraentId":0,"MenuType":"Folder","MenuURL":""},
{"MenuId":11,"MenuName":"组织机构","MenuPraentId":0,"MenuType":"Folder","MenuURL":""}
]
这是EXT的JSON的数据
{children:[
{id:'01',text:'a01',children:[
{id:'01-01',text:'a01-01',leaf:true},
{id:'01-02',text:'a01-02',children:[
{id:'01-02-01',text:'b01-02-01',leaf:true},
{id:'01-02-02',text:'a01-02-02',leaf:true}
]},
{id:'01-03',text:'b01-03',leaf:true}
]},
{id:'02',text:'b02',leaf:true}
]}
我把目录数据从list中转换成Josn数据,但是,这个数据格式,跟EXT的TreeStore中root绑定的字段不一样,要如何把从数据库中读出的数据绑定到tree中?二级目录如何绑定? 展开
[
{"MenuId":1,"MenuName":"我的工作","MenuPraentId":0,"MenuType":"Folder","MenuURL":""},
{"MenuId":2,"MenuName":"行政人事","MenuPraentId":0,"MenuType":"Folder","MenuURL":""},
{"MenuId":7,"MenuName":"考勤管理","MenuPraentId":0,"MenuType":"Folder","MenuURL":""},
{"MenuId":11,"MenuName":"组织机构","MenuPraentId":0,"MenuType":"Folder","MenuURL":""}
]
这是EXT的JSON的数据
{children:[
{id:'01',text:'a01',children:[
{id:'01-01',text:'a01-01',leaf:true},
{id:'01-02',text:'a01-02',children:[
{id:'01-02-01',text:'b01-02-01',leaf:true},
{id:'01-02-02',text:'a01-02-02',leaf:true}
]},
{id:'01-03',text:'b01-03',leaf:true}
]},
{id:'02',text:'b02',leaf:true}
]}
我把目录数据从list中转换成Josn数据,但是,这个数据格式,跟EXT的TreeStore中root绑定的字段不一样,要如何把从数据库中读出的数据绑定到tree中?二级目录如何绑定? 展开
2个回答
展开全部
自己定义一个后台的TreeNode类(仿照extjs里的TreeNode类),里面可以有如下属性:
private String id;
private String text;
private boolean leaf;//是否是叶子节点
private Boolean checked;//复选框
private TreeNode parent;//父节点对象
private Collection<TreeNode> children = new TreeSet<TreeNode>();//子节点的集合
除了属性的get/set方法外,可以加如下方法:
public void addChild(TreeNode node) {
this.children.add(node);
}
public void removeChild(TreeNode node) {
this.children.remove(node);
}
然后组件树时,根据你查出的数据,new一个TreeNode然后把MenuId的值放到id里,把MenuName放到text里,然后MenuPraentId是0说明是根一级节点,然后查MenuPraentId是MenuId的孩子节点,找到之后,也是这样new个TreeNode,然后赋值,最后把上一级addChild子一级的节点,然后做个递归,构建一个完整的树
最后看你用什么方式返回给前台,如果直接返回对象给前台(dwr可以)直接就能用了。如果要返回字符串给前台,那就用jsonObject转下,toString就好了~~~到前台只要是extjs的treeNode格式的数据,tree就认了~~~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询