解决方案 »

  1.   

    http://www.ztree.me/v3/main.php#_zTreeInfo
    看看ztree的,不需要自己递归,直接组装成json数据给ztree就行
    比如json数据是这样
    var nodes = [
    {id:1, pId:0, name: "父节点1"},
    {id:11, pId:1, name: "子节点1"},
    {id:12, pId:1, name: "子节点2"}
    ];
    刚好和你的数据库设计吻合
      

  2.   

    发过了吧。你把数据拼成json那个格式。你 上个帖子不是有。
      

  3.   

    地址下面的url就是。 这个 
    返回的是json 。下面的Param就是参数 看看文档
    var setting = {
    async: {
    enable: true,
    url:"../asyncData/getNodes.php",
    autoParam:["id", "name=n", "level=lv"],
    otherParam:{"otherParam":"zTreeAsyncTest"},
    dataFilter: filter
    }
    };sql 参照。create table depatment
     (
     id int not null ,--自增 id
     name varchar(20), --商品名称
     parent_id int,-- 父级id
     )
     
     
     insert into depatment values(1,'肉类',0)
     insert into depatment values( 2,'蛋奶',0)
     insert into depatment values( 3 ,' 猪肉',1)
     insert into depatment values( 4,'牛肉',1)
     insert into depatment values( 5,'羊肉',1)
     insert into depatment values( 6 ,'东北大白猪肉' ,3)
     insert into depatment values( 7,' 华南鲜猪肉' ,3)
     insert into depatment values( 8,'红牛肉',4)
     insert into depatment values( 9 ,'卤牛肉',4)
     insert into depatment values( 10,'水煮腌羊肉',5)
     insert into depatment values( 11 ,' 卤羊肉',5)
     insert into depatment values( 12,' 土鸡蛋' ,2)
     insert into depatment values( 13,' 皮蛋' ,2)
     insert into depatment values( 14,'阳逻土鸡蛋' ,12)
     insert into depatment values( 15 ,'肉鸡土鸡蛋',12)
     insert into depatment values( 16,'黄皮蛋' ,13)
     insert into depatment values( 17,'土皮蛋' ,13)
     
     
     
     
    --检索sql,sqlserver 写法
     with cte as 
     (
    --id 是你树节点传递的参数如id ='4'
     select a.id,a.name,a.parent_id from depatment a  where id ='4'
     union all  
     select k.id,k.name,k.parent_id  from depatment k inner join cte c on c.id = k.parent_id
     )select * from cte  
      

  4.   

    什么demo,官方文档很详细,上面sql也写个你了。你看3楼 的链接好好分析啊,你只要传入参数,返回json格式就行。
      

  5.   

    一楼的比较靠谱吧 我也是在后台组装json数据传到前台,前台使用ztree控件进行展示,效果不错的
      

  6.   


    //我以前写的一个递归组织树形数据,返回的数据格式符合easy-ui的tree的需要,你参考下
    ===============================================================
    public List<Map<String, Object>> doTreeData(String parentid) {
    List<Map<String, Object>> list=XXXX.queryByparentid(parentid);//查询数据库,查出parent_level=parentid的所有数据
    ArrayList<Map<String, Object>> newlist=new ArrayList<Map<String, Object>>();

    for(int i=0;i<list.size();i++){
     HashMap<String, Object> map=new HashMap<String, Object>();
     
     map.put("id", list.get(i).get("id").toString());
     map.put("name", list.get(i).get("name").toString());
     map.put("text", list.get(i).get("name").toString());

     String node=list.get(i).get("id").toString();
     
     Long count=XXXX.queryCountByparentid(node);
     if(count > 0){
     //该节点下有子节点
     List<Map<String, Object>> listchild=this.doTreeData(node);
     map.put("children", listchild);
     map.put("state", "closed");
     }else{
     //无子节点
     }  
     newlist.add(map);  
    }
    return newlist;
    }
      

  7.   

    1:如果能自己组装一下,组装成json是最好。
    2:我这里提供一个锻炼你写jsp页面能力的方法。首先数据准备,一个List,里边是Map,每个Map即为一个记录,利用key-value保存属性。页面上,一级一级循环。就像3层for循环一样,使用iterator。至于,第一层循环循环呢?--〉寻找顶层循环子列表,也就是parent_level==0的。
    #list.{? #this.parent_level == 0}  ==>不知道你会不会这种用法,这个叫做集合过滤。
    过滤完的集合做为最外层循环的集合List即可。
    然后遍历的时候,先输出自己,然后判断是否有子list,有的话继续遍历,否则停止。