jQuery MiniUI

标题: miniui pagertree 问题 [打印本页]

作者: FM162336    时间: 2017-6-23 11:00:11     标题: miniui pagertree 问题

本帖最后由 FM162336 于 2017-6-23 11:01 编辑

大家好,我目前在学习miniui,遇到一个问题,我在使用miniui  pagertree时,想通过 getAllChildNodes ( node )获取所有叶子节点,但是每次浏览器都会报错 tree.getAllChildNodes  is not function,我不懂在哪里有问题,麻烦哪位大佬帮忙解惑一下
附上我的代码   
            var tree = mini.get("treegrid1");
            var row = tree.getSelected();
            var a  = tree.getAllChildNodes(row);

作者: felt    时间: 2017-6-23 13:33:52

pagerTree不是tree,只是一个变形的datagrid,不支持tree的api,只能用datagrid的api,
他的节点是没有父子关系的,具体可以看我们pagerTree的源码,这个我们是提供的。
作者: FM162336    时间: 2017-6-23 13:59:43

felt 发表于 2017-6-23 13:33
pagerTree不是tree,只是一个变形的datagrid,不支持tree的api,只能用datagrid的api,
他的节点是没有父子关 ...

那如果我想要在pagertree中实现下面这样的功能该怎么做,只能在后台进行判断操作?

                    ID         PID  
A                   1           1
     B              2           1
          C         3           2
(从形式看,A是最高级,B是A的子级,C是B的子级)我想在删除A的时候将B和C也删除,即实现级联删除
作者: felt    时间: 2017-6-23 15:39:38

FM162336 发表于 2017-6-23 13:59
那如果我想要在pagertree中实现下面这样的功能该怎么做,只能在后台进行判断操作?

                    ...

这个需要自己扩展一下了
pagerTree的数据关联还是通过id和pid字段来形成树形的
比如你这3级联动
可以这样获取b级节点
var rows=grid.findRows(function(row){
    if(row.pid==a.id) return true;
})
c级可以根据b级节点遍历再来获取。
  1. function getChildNodes(arow) {
  2.             var rows = [];
  3.             var bRows = tree.findRows(function (row) {
  4.                 if (row.pid == arow.id) return true;
  5.             })
  6.             rows.push(bRows);
  7.             for (var i = 0, l = bRows.length; i < l; i++) {
  8.                 var item = bRows[i];
  9.                 var cRows=tree.findRows(function (row) {
  10.                     if (row.pid == crow.id) return true;
  11.                 })
  12.                 rows.push(cRows);
  13.             }
  14.             return rows;
  15.         }
复制代码

作者: FM162336    时间: 2017-6-24 14:54:01

本帖最后由 FM162336 于 2017-6-24 15:49 编辑
felt 发表于 2017-6-23 15:39
这个需要自己扩展一下了
pagerTree的数据关联还是通过id和pid字段来形成树形的
比如你这3级联动

我正后台用循环判断的形式实现了这个我要的功能,但是现在我又遇到一个很奇怪的问题,我在pagertree添加了复选框,勾选了复选框进行数据操作,在操作完收据后进行了reload()操作,按道理reload()完所有复选框的勾选应该全部去除,但是实际却是部分复选框还是被勾选了(如图所示),为什么会出现这样的情况?[attach]9410[/attach]
作者: felt    时间: 2017-6-26 10:57:01

FM162336 发表于 2017-6-24 14:54
我正后台用循环判断的形式实现了这个我要的功能,但是现在我又遇到一个很奇怪的问题,我在pagertree添加了 ...

默认效果是保留刷新前的选中的,你要去掉的话可以这样处理
grid.on("load",function(e){
    grid.deselectAll()
})




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