树结构如下 :
 
 |-上海分部
      |- 财务部门
            |- 张三
            |- 李四
      |- 技术部门
            |- 潇潇
 |-北京分部
      |- 市场部门
            |- 冯思问题:
有3级的树, 每级都是从一个单独的表中获取的数据,所以3个级别中的Id 都有相同的(比如 上海分部的Id为 01,财务部门的编号也可能为 01,同理张三的编号也可能为01 )。现在我给每个节点添加了一个属性 (depth),我如何根据 id 及depth(放在 node.attributes 中) 这两个条件获取树的节点 ?PS: 我能想到的方案:
1.  easyUI 提供 getNode 的方法 , $("tt").tree('getNode',node.target); 我如何将当前的条件放入 node.target 中?
2.  获取tree 的所有节点,然后再根据 获取的节点遍历 ,如果两个条件都符合,则保存当前的节点,但是easyUI好像只提供了 getRoots 方法, 也就是说只能获取根节点的所有节点

解决方案 »

  1.   


    find 的参数就是 id , 我说了, id 有相同的 ~ 
      

  2.   

    你数据源的ID生成唯一的不就行了?? 你读取数据的时候连接上父亲ID |-上海分部 01
          |- 财务部门01_01
                |- 张三01_01_01
                |- 李四01_01_02
          |- 技术部门01_02
                |- 潇潇01_02_03
     |-北京分部02
          |- 市场部门02_03
                |- 冯思02_03_04
      

  3.   

    树的id不应该相同,你可能有你内部用的id值,但构造树的id不能相同。
      

  4.   

    给表一个前缀,比如上海分部是s,北京分部是b,树节点id由表前缀加部门id组成,如s01,s02,b01,b02,这样树节点整体上就不重复了。
      

  5.   


      数据库中的id 我肯定不会去改了, 但是封装 树的 json 的时候, 再去拼接 ~
    这样有时候需要单独某一层的 id 的时候, 又要去解析这个 id   如果从数据库中改这个 id 的话, 那东西就越做越多了  ~~~
      

  6.   

    不用改数据库里面的数据啊你不是动态加载的吗,datagrid数据源那个动态页生成ID的时候,拼接一下上一级的ID以便生成唯一的ID,这个就得看你的数据库设计了,应该有存储上一级节点的ID吧,要不关系都没有了,你也无法读取下一级节点吧。