读书人

easyUI 加载parent/child节点到tree 变

发布时间: 2012-08-26 16:48:06 作者: rapoo

easyUI 加载parent/child节点到tree 转换tree标准格式数据

@author YHC

通常的方式代表一个树节点就是存储一个parentid 在每一个节点,这个也被称为邻表模型,直接加载这些数据到tree是不允许的,但是我们可以转换它到标准tree数据格式在tree加载之前.tree插件提供一个'loadFilter' 选项函数它可以做到这个功能.提供一个机会去改变一个任何的进入数据,这个教程向你展示如何使用 'loadFilter'函数加载 parent/child节点到tree.

easyUI 加载parent/child节点到tree 变换tree标准格式数据

查看 Demo

parent/child 节点原始数据(这个不是标准的tree数据格式)
function convert(rows){      function exists(rows, parentId){          for(var i=0; i<rows.length; i++){              if (rows[i].id == parentId) return true;          }          return false;      }            var nodes = [];      // 得到顶层节点    for(var i=0; i<rows.length; i++){          var row = rows[i];          if (!exists(rows, row.parentId)){              nodes.push({                  id:row.id,                  text:row.name              });          }      }            var toDo = [];      for(var i=0; i<nodes.length; i++){          toDo.push(nodes[i]);      }      while(toDo.length){          var node = toDo.shift();    // 父节点         // 得到子节点         for(var i=0; i<rows.length; i++){              var row = rows[i];              if (row.parentId == node.id){                  var child = {id:row.id,text:row.name};                  if (node.children){                      node.children.push(child);                  } else {                      node.children = [child];                  }                  toDo.push(child);              }          }      }      return nodes;  }  

下载 EasyUI 示例代码:easyui-tree-demo.zip







读书人网 >编程

热点推荐