jQuery MiniUI

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

mini-tree加载问题 [复制链接]

Rank: 1

跳转到指定楼层
楼主
发表于 2014-11-10 13:48:37 |只看该作者 |倒序浏览
本帖最后由 HaKuNaMaTaTa 于 2014-11-10 13:53 编辑

请教一个mini-tree加载的问题:
1、因为我这棵树加载的数据很多,所以我希望能够在加载的时候,弹出一个框框提示正在加载,加载完成后就隐藏提示框

我的代码是这个逻辑:
1)点击一个按钮showTreeWindow(),弹出下面的userTreeWindow,里面有要加载数据的树。允许用户选择其中的数据,因为要实现选中父节点,则子节点则同步全部勾上,且之后允许去掉某一子节点的选择,所以没有使用懒加载(如果这个功能也能使用懒加载,请不吝赐教,谢谢)。
  1. <div id="userTreeWindow" class="mini-window" title="数据范围" style="width:300px; height:400px;" showModal="true" allowResize="false" allowDrag="false">
  2.         <table style="width: 100%;">
  3.             <tr>
  4.                 <td style="width: 100%;">
  5.                     <a id="userTreeConfirmBtn" class="mini-button" iconCls="icon-add" style="font-weight: bold;" plain="true" onclick="clickuserTreeConfirmBtn">确定</a>
  6.                 </td>
  7.             </tr>
  8.         </table>
  9.         <ul id="userTree" class="mini-tree" url="" style="width:100%;height:93%;"
  10.             showTreeIcon="true" textField="name" idField="id" parentField="pid" resultAsTree="false" showCheckBox="true"
  11.             checkRecursive="true" allowSelect="false" enableHotTrack="false">   
  12.         </ul>
  13.     </div>
复制代码
showTreeWindow()方法如下:
  1. function showTreeWindow() {
  2.             var userTreeWindow = mini.get("userTreeWindow");
  3.             var userTree = mini.get("userTree");

  4. messageid1 = mini.loading("加载中,请稍后...","加载中");

  5. //这个是数据的加载
  6. userTree.load("summaryCaseAction.do?op=getUserList");

  7.             mini.hideMessageBox(messageid1);
  8.                 userTreeWindow.show();
  9.     }
复制代码
这个在火狐和谷歌下能够正常运行,能够先提示正在加载,树加载出来后,消息框消失。但是在IE下(我的是IE7),却没有任何提示,点击完按钮之后,好长一段时间(数据较多)才弹出窗口显示树。

2)然后我尝试在userTree上加上onbeforeload="userTreeBeforeLoad" ,还有onload="userTreeLoad"这2个方法,
  1. var messageid1="";
  2. function userTreeBeforeLoad(){
  3. //alert(888);
  4.             messageid1 = mini.loading("加载中,请稍后...","加载中");
  5.     }
  6.     function userTreeLoad(){
  7. //alert(999);
  8.         mini.hideMessageBox(messageid1);
  9.     }
  10. function showTreeWindow() {
  11.             var userTreeWindow = mini.get("userTreeWindow");
  12.             var userTree = mini.get("userTree");

  13. //alert(777);
  14. //这个是数据的加载
  15. userTree.load("summaryCaseAction.do?op=getUserList");

  16.                 userTreeWindow.show();
  17.     }
复制代码
结果还是火狐谷歌可以,但是IE仍然不行.
加上alert,
1)在IE下测试执行顺序,分别是alert(777);然后alert(888),点击确定,alert(888)这个提示框僵住,直到alert(999)出现,点击确定,瞬间loding提示框消失,数据显示出来。
2)在火狐下测试执行顺序,先alert(777);然后alert(888),显示数据正在加载loading, 然后弹出alert(999),隐藏消息框,显示数据。

如果有知道解决方案的,请赐教,不胜感激!谢谢...


Rank: 8Rank: 8

沙发
发表于 2014-11-10 14:24:46 |只看该作者
messageid1 = mini.loading("加载中,请稍后...","加载中");
tree.setUrl("summaryCaseAction.do?op=getUserList")
tree.load(null,function(){
    mini.hideMessageBox(messageid1);
})

Rank: 1

板凳
发表于 2014-11-10 14:54:26 |只看该作者
dforce 发表于 2014-11-10 14:24
messageid1 = mini.loading("加载中,请稍后...","加载中");
tree.setUrl("summaryCaseAction.do?op=getUse ...

我试了下,在IE下还是不行啊,火狐可以

Rank: 8Rank: 8

地板
发表于 2014-11-10 15:39:10 |只看该作者
HaKuNaMaTaTa 发表于 2014-11-10 14:54
我试了下,在IE下还是不行啊,火狐可以

本地测试没什么问题,
你的ie什么版本

Rank: 1

5#
发表于 2014-11-10 16:35:25 |只看该作者
dforce 发表于 2014-11-10 15:39
本地测试没什么问题,
你的ie什么版本

使用的是IE7

Rank: 8Rank: 8

6#
发表于 2014-11-10 16:46:27 |只看该作者
HaKuNaMaTaTa 发表于 2014-11-10 16:35
使用的是IE7


附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 1

7#
发表于 2014-11-11 15:29:49 |只看该作者
本帖最后由 HaKuNaMaTaTa 于 2014-11-11 15:32 编辑
dforce 发表于 2014-11-10 16:46

谢谢,不过我试了,还是不行,我换成这种方式IE就可以兼容:(但是loadList方法在旧版本无法使用,loadData生成的树又不是所想要的)
  1. var userTreeWindow = mini.get("userTreeWindow");
  2.         
  3. var userTree = mini.get("userTree");
  4. var messageid1 = mini.loading("加载中,请稍后...","加载中");
  5. $.ajax({
  6.                 type: "POST",
  7.                 url: "<%=path%>/summaryCaseAction.do?op=getUserList",
  8.                 contentType: "application/x-www-form-urlencoded; charset=utf-8",
  9.                 success: function (result) {
  10.                         var o = mini.decode(result);
  11.                         userTree.loadList(o, "id","pid");
  12.                         mini.hideMessageBox(messageid1);
  13.                         userTreeWindow.show();
  14.                        },
  15.                 error:function(){
  16.                            mini.alert("网络出现异常.");
  17.                 }         
  18.    });
复制代码

Rank: 8Rank: 8

8#
发表于 2014-11-11 15:36:53 |只看该作者
HaKuNaMaTaTa 发表于 2014-11-11 15:29
谢谢,不过我试了,还是不行,我换成这种方式IE就可以兼容:(但是loadList方法在旧版本无法使用,loadDat ...

请更新至最新版本

Archiver|普加软件

GMT+8, 2024-7-1 03:20 , Processed in 1.041187 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部