jQuery MiniUI

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

求助——获取混合选择的树节点名 [复制链接]

Rank: 2

跳转到指定楼层
楼主
发表于 2015-10-20 11:18:48 |只看该作者 |倒序浏览
       开发过程中用户提出来这样一个需求:选择树形节点时,页面上动态显示选择了树的哪些节点。       比如根节点是学校,一级节点是年级,二级节点是班级,三级节点是学生,当选择学生时页面上要显示选择的学生的姓名——选班级时页面上只显示这个班级的名称——选年级时页面上只显示这个年级的名称,这个比较简单,但是当用户混合选择——选了几个年级、然后又选了几个班、还有几个只选择了班下面的几个学生——这种显示就比较蛋疼了,要显示选中的年级名+班级名+学生名。
      个人能力有限,目前是自己分析mini-tree选择时返回的数据进行解析然后拼接,头都大了。。。再多一级估计就要爆炸,想问下管理员有没有什么现成的方法直接满足上述需求,或者管理员有没有什么好办法来解决这种问题,谢谢!

Rank: 8Rank: 8

沙发
发表于 2015-10-20 12:02:44 |只看该作者
这个需求有点奇怪了
多种选择的情况下到底要显示成什么样子,最好配个图来说明

Rank: 2

板凳
发表于 2015-10-20 13:30:47 |只看该作者
felt 发表于 2015-10-20 12:02
这个需求有点奇怪了
多种选择的情况下到底要显示成什么样子,最好配个图来说明 ...


例如上图所示,这里还只是三级的,我选择了一个年级和几个班级,已选人员要显示的是年级的名字加上选择的班级的名字,而不是所有班级的名字,而不是所有班级的名字,如果再加上一级学生,选一个年级显示出来全年级所有学生的名字是没有意义的,不如直接显示出来年级的名字,用户是这个意思,也是有一定道理的
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

地板
发表于 2015-10-20 13:46:59 |只看该作者
looqy 发表于 2015-10-20 13:30
例如上图所示,这里还只是三级的,我选择了一个年级和几个班级,已选人员要显示的是年级的名字加上选择 ...

就是你图上的就是你现在需要显示的?
就是说如果一个节点所有子节点都是勾选的,那么只显示父节点的名字?
那只能获取到所有选中节点,然后判断剔除你不要的节点

Rank: 2

5#
发表于 2015-10-20 14:15:17 |只看该作者
felt 发表于 2015-10-20 13:46
就是你图上的就是你现在需要显示的?
就是说如果一个节点所有子节点都是勾选的,那么只显示父节点的名字 ...

现在就是这样做的,判断剔除的过程太麻烦了,树的深度越大,就越复杂,没有现成的方法吗,贵公司的程序猴们有木有考虑过这种情况下的解决方案,请赐教

Rank: 8Rank: 8

6#
发表于 2015-10-20 14:41:57 |只看该作者
looqy 发表于 2015-10-20 14:15
现在就是这样做的,判断剔除的过程太麻烦了,树的深度越大,就越复杂,没有现成的方法吗,贵公司的程序猴 ...

没有现成的方法
只能遍历去处理了
  1. var tree = mini.get(id);
  2.             var nodes = tree.getCheckedNodes();
  3.             var arr = [];
  4.             for (var i = 0, l = nodes.length; i < l; i++) {
  5.                     var node = nodes[i];
  6.                     var pnode = tree.getParentNode(node)
  7.                     if (pnode && tree.isCheckedNode(pnode)) {
  8.                             continue;
  9.                     } else {
  10.                         arr.push(node);
  11.                                 }
  12.             }
  13.             alert(arr.length);
复制代码

Rank: 2

7#
发表于 2015-10-20 15:20:44 |只看该作者
felt 发表于 2015-10-20 14:41
没有现成的方法
只能遍历去处理了

3q,比我的方法简单多了!!

Archiver|普加软件

GMT+8, 2025-7-9 11:09 , Processed in 1.038690 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部