jQuery MiniUI

标题: lazytree 用loadList绑定,然后onbeforeload事件会死循环 [打印本页]

作者: insony@qq.com    时间: 2023-5-23 16:48:29     标题: lazytree 用loadList绑定,然后onbeforeload事件会死循环

小弟最近要用lazytree,因为项目原因不可以用url,需要用loadList绑定数据,但是在 onbeforeload="onBeforeTreeLoad"的时候一直死循环,不知道怎么处理,麻烦帮忙看看,下面是源代码,其中getFileForlderURL,getFileForlderByParentForldId是我方erp的api接口地址。






  1. <html>

  2. <head>
  3.     <title></title>
  4.     <meta charset="utf-8" />
  5.     <script src="website/res/js/boot.js" type="text/javascript"></script>
  6.     <!-- <script src="website/res/constant.js" type="text/javascript"></script> -->
  7.     <script src="website/res/js/common.js" type="text/javascript"></script>

  8.     <link href="website/res/frame.css" rel="stylesheet" type="text/css" />
  9.     <link href="website/res/index.css" rel="stylesheet" type="text/css" />


  10. </head>

  11. <body>
  12.     <div id="form1">
  13.         <div class="navbar">
  14.             <div class="navbar-header">
  15.                 <div class="navbar-brand"></div>
  16.             </div>
  17.         </div>

  18.         <div id="layout1" class="mini-layout" style="width:100%;height:100%;">

  19.             <div title="文件夹" region="west" width="300" showSplitIcon="true">
  20.                 <ul id="tree1" class="mini-tree" style="padding:5px;" showTreeIcon="true" textField="FNAME"
  21.                     idField="id" parentField="parentid_id" resultAsTree="false" onbeforeload="onBeforeTreeLoad"
  22.                     expandOnNodeClick="true" expandOnLoad="0">
  23.                 </ul>
  24.             </div>


  25.         </div>
  26.         <script type="text/javascript">
  27.          
  28.             mini.parse();


  29.       
  30.             //tree
  31.             function firstTreeLoad() {
  32.                 var jsonObj =
  33.                 {
  34.                     "parameter": "parameter"
  35.                 }
  36.                 //加载文件夹树
  37.                 mydata = null;
  38.                 fnWebApiClient(getFileForlderURL, jsonObj)
  39.                 if (mydata != null && mydata.length > 0) {
  40.                     mini.get("tree1").loadList(mydata);
  41.                 }
  42.             }

  43.             firstTreeLoad();
  44.             
  45.             /*
  46.             上面结果数据如下:
  47.             
  48. {id: 101239, parentid_id: 0, FNAME: '研究院[2]', isLeaf: 0, expanded: 0, …}

  49. {id: 101240, parentid_id: 0, FNAME: '物料申请单[4]', isLeaf: 0, expanded: 0, …}

  50. {id: 101241, parentid_id: 0, FNAME: 'BOM[2]', isLeaf: 0, expanded: 0, …}

  51. {id: 130201, parentid_id: 0, FNAME: '培训文档[5]', isLeaf: 0, expanded: 0, …}

  52. {id: 130203, parentid_id: 0, FNAME: '产品文件[3]', isLeaf: 0, expanded: 0, …}

  53. {id: 134274, parentid_id: 0, FNAME: '项目模板[1]', isLeaf: 0, expanded: 0, …}

  54. {id: 134275, parentid_id: 0, FNAME: '公司项目[1]', isLeaf: 0, expanded: 0, …}

  55. {id: 135009, parentid_id: 0, FNAME: '设计变更[2]', isLeaf: 0, expanded: 0, …}

  56.             */

  57.             //lazytree
  58.             function onBeforeTreeLoad(e) {
  59.                 // var tree = e.sender;    //树控件
  60.                 var node = e.node;      //当前节点
  61.                 // var params = e.params;  //参数对象

  62.                 //可以传递自定义的属性
  63.                 // params.parameter = node.id; //后台:request对象获取"myField"

  64.                 // var levelnode = tree.getAncestors(e.node);//获取该节点所有父节点

  65.                 var jsonObj =
  66.                 {
  67.                     "parameter": node.id
  68.                 }
  69.                 //加载文件夹树
  70.                 mydata = null;
  71.                 fnWebApiClient(getFileForlderByParentForldId, jsonObj)
  72.                 if (mydata != null && mydata.length > 0)
  73.                     mini.get("tree1").loadNode(mydata);
  74.             }
  75.             /*
  76.             上面结果数据如下:
  77.             
  78. {id: 101242, parentid_id: 101239, FNAME: '设计图纸[2]', isLeaf: 0, expanded: 0, …}

  79. {id: 101243, parentid_id: 101239, FNAME: '一般文档[2]', isLeaf: 0, expanded: 0, …}

  80. {id: 101244, parentid_id: 101239, FNAME: 'BOM(结构设计部)[2]', isLeaf: 0, expanded: 0, …}

  81.             */

  82.          
  83.         </script>



  84. </body>

  85. </html>
复制代码



作者: felt    时间: 2023-5-24 09:13:45

都是静态数据了,参考这些代码
  1. <div class="mini-tree" id="tree1" style="width: 300px; height: 300px" virtualscroll="true" showCheckBox="true">
  2.     </div>
  3. tree.loadData([{ id: 1, text: "a", isLeaf: false, asyncLoad: false}])
  4.     tree.on("beforeexpand", function (e) {
  5.         var cds = tree.getChildNodes(e.node);
  6.       
  7.         if (cds.length < 1) {
  8.             var nodes = [];
  9.             for (var i = 1; i < 3001; i++) {
  10.                
  11.                 var node = { id: e.node.id + "_" + i, text: e.node.text + "_" + i, isLeaf: false, asyncLoad: false, expanded: false };
  12.                 nodes.push(node);
  13.             }
  14.             tree.addNodeCls(e.node, "mini-tree-loading");
  15.             tree.addNodes(nodes, e.node);
  16.         }
  17.         
  18.     })       
复制代码

作者: insony@qq.com    时间: 2023-5-24 11:43:45

felt 发表于 2023-5-24 09:13
都是静态数据了,参考这些代码

非常感谢,效果刚刚的




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2