首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

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

2012-08-26 
easyUI 加载parent/child节点到tree 转换tree标准格式数据@author YHC通常的方式代表一个树节点就是存储一

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







热点排行