jQuery MiniUI

 找回密码
 立即注册
查看: 4892|回复: 5
打印 上一主题 下一主题

lazyTree 查询后展开所有节点 [复制链接]

Rank: 1

跳转到指定楼层
楼主
发表于 2014-2-19 11:12:08 |只看该作者 |倒序浏览
本帖最后由 hzq352 于 2014-2-19 11:27 编辑

lazyTree 查询后展开所有节点,tree.expandAll();这个方法无效,为什么呢

  1. <%@ page language="java" contentType="text/html; charset=GBK"
  2.     pageEncoding="GBK"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=GBK">
  7. <!-- miniUI插件 -->  
  8. <script src="${pageContext.request.contextPath}/miniui/boot.js" type="text/javascript"></script>
  9. <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/style/system/js/manager/css/basics.css"/>
  10. <script type="text/javascript">
  11. var contextpath = '${pageContext.request.contextPath}';
  12. var unitId = '${sessionScope.CurrentUnit.organID}';
  13. </script>
  14. <style type="text/css">
  15.     html,body
  16.     {
  17.         padding:0;
  18.         margin:0;
  19.         border:0;     
  20.         width:100%;
  21.         height:100%;
  22.         overflow:hidden;   
  23.     }
  24.     </style>
  25. </head>
  26. <body>
  27. <div class="mini-toolbar" style="text-align:center;line-height:30px;"
  28.         borderStyle="border-left:0;border-top:0;border-right:0;">
  29.         <table style="width:100%;table-layout:fixed;">
  30.   <tr>
  31.             <td style="width:60px;">机构名称:</td>
  32.             <td>
  33.                 <input id="organname" name="organname" class="mini-textbox" style="width:100%" onenter="onKeyEnter"/>
  34.             </td>
  35.             <td style="width:60px;">用户名称:</td>
  36.             <td>
  37.                 <input id="username" name="username" class="mini-textbox" style="width:100%;" onenter="onKeyEnter"/>
  38.             </td>
  39.             <td style="width:60px;">
  40.              <a class="mini-button" style="width:60px;" onclick="search()">查询</a>
  41.             </td>
  42.         </tr>
  43.         </table>
  44. <!--         <label >机构名称:</label> -->
  45. <!--      <input id="organname" name="organname" class="mini-textbox" style="width:120px;" onenter="onKeyEnter"/> -->
  46. <!--      <label>用户名称:</td></label> -->
  47. <!--         <input id="username" name="username" class="mini-textbox" style="width:120px;" onenter="onKeyEnter"/> -->
  48. <!--         <a class="mini-button" style="width:60px;" onclick="search()">查询</a> -->
  49.     </div>
  50.     <div class="mini-fit">
  51.         
  52.         <ul id="tree1" class="mini-tree" url="${pageContext.request.contextPath}/tbp/user/ChooseUser.do?method=buildTree" style="padding:5px;"
  53.          showTreeIcon="true" textField="name" allowDrag="true" allowDrop="true" allowLeafDropIn="true" showCheckBox="true"
  54.          idField="id" parentField="pId" resultAsTree="false" onbeforeload="onBeforeTreeLoad" virtualScroll="true" >        
  55.      </ul>
  56.    
  57.     </div>               
  58.     <div class="mini-toolbar" style="text-align:right;padding-top:8px;padding-bottom:8px;"
  59.         borderStyle="border-left:0;border-bottom:0;border-right:0;">
  60.         <a class="mini-button" style="width:60px;" onclick="onOk()">确定</a>
  61.         <span style="display:inline-block;width:15px;"></span>
  62.         <a class="mini-button" style="width:60px;" onclick="onCancel()">取消</a>
  63.     </div>
  64. </body>
  65. </html>
  66. <script type="text/javascript">
  67. mini.parse();

  68. function onBeforeTreeLoad(e) {
  69.         var tree = e.sender;    //树控件
  70.         var node = e.node;      //当前节点
  71.         var params = e.params;  //参数对象
  72.         var organname = mini.get("organname").getValue();
  73.      var username = mini.get("username").getValue();
  74.         //可以传递自定义的属性
  75.         params.organId = node.id; //后台:request对象获取
  76.         params.unitId = unitId; //后台:request对象获取
  77.         params.username = encodeURI(username); //后台:request对象获取
  78.         params.organname = encodeURI(organname); //后台:request对象获取
  79.         
  80.     }

  81. function search(){
  82.      var tree = mini.get("tree1");
  83.      
  84.      var organname = mini.get("organname").getValue();
  85.      var username = mini.get("username").getValue();
  86.      
  87.      var msgid = mini.loading("数据查询中,请稍后......");
  88.      $.ajax({
  89.          url: contextpath + "/tbp/user/ChooseUser.do?method=buildTree",
  90.          contentType: "application/x-www-form-urlencoded; charset=utf-8",
  91.          data: { username: username, organname: organname, unitId: unitId },
  92.          type: "post",
  93.          success: function (text) {
  94.              var data = mini.decode(text);
  95.              tree.loadList(data);
  96.              //tree.expandAll();
  97.              mini.hideMessageBox(msgid);
  98.          },
  99.          error: function (jqXHR, textStatus, errorThrown) {
  100.              alert(jqXHR.responseText);
  101.          }
  102.      });
  103.      
  104.      //查询完展开所有
  105.      tree.expandAll();
  106. }

  107. function onKeyEnter(e) {
  108.      search();
  109. }

  110. /*  function onOk() {
  111.         var tree = mini.get("tree1");
  112.         var value = tree.getValue(false);
  113.         alert(value);
  114.     }

  115. function onCancel() {
  116.         window.close();
  117.     } */

  118.   //////////////////////////////////
  119.     function CloseWindow(action) {
  120.         if (window.CloseOwnerWindow) return window.CloseOwnerWindow(action);
  121.         else window.close();
  122.     }

  123.     function onOk() {
  124.      var tree = mini.get("tree1");
  125.         var value = tree.getValue(false);
  126.         alert(value);

  127.         CloseWindow("ok");        
  128.     }
  129.     function onCancel() {
  130.         CloseWindow("cancel");
  131.     }
  132. </script>
复制代码

Rank: 8Rank: 8

沙发
发表于 2014-2-19 12:35:53 |只看该作者
既然是lazytree了,那么懒加载就是根据你的需求,或者点击的节点,来加载对应的下一级的数据

否则是不会返回数据.你执行expandAll()当然没用了,因为一些节点下,都没数据

你如果要展开全部节点,得先要有确保节点下有数据.返回全部的tree数据

Rank: 1

板凳
发表于 2014-2-19 13:54:48 |只看该作者
factory 发表于 2014-2-19 12:35
既然是lazytree了,那么懒加载就是根据你的需求,或者点击的节点,来加载对应的下一级的数据

否则是不会返回 ...

懒加载的情况下 做不到一次性 全部展开所有吗? 其实就是 循环去查树的下级节点

Rank: 8Rank: 8

地板
发表于 2014-2-19 14:52:01 |只看该作者
hzq352 发表于 2014-2-19 13:54
懒加载的情况下 做不到一次性 全部展开所有吗? 其实就是 循环去查树的下级节点 ...

你要展开全部就一次性返回树的全部数据
懒加载是点击节点返回该节点下的数据

Rank: 1

5#
发表于 2014-2-19 16:55:57 |只看该作者
felt 发表于 2014-2-19 14:52
你要展开全部就一次性返回树的全部数据
懒加载是点击节点返回该节点下的数据 ...

没有方法能查完后自动触发下点击的操作吗?EXTJS是支持的

Rank: 8Rank: 8

6#
发表于 2014-2-19 17:14:49 |只看该作者
hzq352 发表于 2014-2-19 16:55
没有方法能查完后自动触发下点击的操作吗?EXTJS是支持的

没必要这样做啊,
1.循环节点浪费性能开销
2.每个父节点都去后台加载他的子节点,前后台多次交互,也是开销问题

你既然要全部展开,tree就一次性加载完全部数据好了,干嘛还要去遍历每个节点,还每个节点都去后台跑一次

Archiver|普加软件

GMT+8, 2025-7-17 07:19 , Processed in 1.051300 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部