课程表

jEasyUI 应用

jEasyUI 拖放

jEasyUI 菜单与按钮

jEasyUI 布局

jEasyUI 数据网格

jEasyUI 窗口

jEasyUI 树形菜单

jEasyUI 表单

jEasyUI 参考手册

工具箱
速查手册

jEasyUI 树形菜单父子节点

当前位置:免费教程 » JS/JS库/框架 » jQuery EasyUI

通常表示一个树节点的方式就是在每一个节点存储一个 parentid。 这个也被称为邻接列表模型。 直接加载这些数据到树形菜单(Tree)是不允许的。 但是我们可以在加载树形菜单之前,把它转换为标准标准的树形菜单(Tree)数据格式。 树(Tree)插件提供一个 'loadFilter' 选项函数,它可以实现这个功能。 它提供一个机会来改变任何一个进入数据。 本教程向您展示如何使用 'loadFilter' 函数加载父/子节点到树形菜单(Tree)。

父/子节点数据

  1. [
  2. {"id":1,"parendId":0,"name":"Foods"},
  3. {"id":2,"parentId":1,"name":"Fruits"},
  4. {"id":3,"parentId":1,"name":"Vegetables"},
  5. {"id":4,"parentId":2,"name":"apple"},
  6. {"id":5,"parentId":2,"name":"orange"},
  7. {"id":6,"parentId":3,"name":"tomato"},
  8. {"id":7,"parentId":3,"name":"carrot"},
  9. {"id":8,"parentId":3,"name":"cabbage"},
  10. {"id":9,"parentId":3,"name":"potato"},
  11. {"id":10,"parentId":3,"name":"lettuce"}
  12. ]

使用 'loadFilter' 创建树形菜单(Tree)

  1. $('#tt').tree({
  2. url: 'data/tree6_data.json',
  3. loadFilter: function(rows){
  4. return convert(rows);
  5. }
  6. });

转换的实现

  1. function convert(rows){
  2. function exists(rows, parentId){
  3. for(var i=0; i<rows.length; i++){
  4. if (rows[i].id == parentId) return true;
  5. }
  6. return false;
  7. }
  8. var nodes = [];
  9. // get the top level nodes
  10. for(var i=0; i<rows.length; i++){
  11. var row = rows[i];
  12. if (!exists(rows, row.parentId)){
  13. nodes.push({
  14. id:row.id,
  15. text:row.name
  16. });
  17. }
  18. }
  19. var toDo = [];
  20. for(var i=0; i<nodes.length; i++){
  21. toDo.push(nodes[i]);
  22. }
  23. while(toDo.length){
  24. var node = toDo.shift(); // the parent node
  25. // get the children nodes
  26. for(var i=0; i<rows.length; i++){
  27. var row = rows[i];
  28. if (row.parentId == node.id){
  29. var child = {id:row.id,text:row.name};
  30. if (node.children){
  31. node.children.push(child);
  32. } else {
  33. node.children = [child];
  34. }
  35. toDo.push(child);
  36. }
  37. }
  38. }
  39. return nodes;
  40. }

下载 jQuery EasyUI 实例

jeasyui-tree-tree6.zip

转载本站内容时,请务必注明来自W3xue,违者必究。
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号