jQuery MiniUI

标题: tree的addNode方法问题 [打印本页]

作者: zuzjx    时间: 2013-7-26 11:22:37     标题: tree的addNode方法问题

本帖最后由 zuzjx 于 2013-7-26 11:32 编辑

当addNode ( node, index )是这样时,这index是什么意思呢?,貌似0和其他数字没有区别
addNode ( node, index, parentNode )。这个测试OK,但是新建时,UI上会复制父节点下的字节点到新建位置的下面

作者: felt    时间: 2013-7-26 12:54:49

本帖最后由 felt 于 2013-7-26 13:10 编辑

addNode(node,index,parentNode)
这个Api上描述的不好,稍后我们会修正,
应该为addNode(node,action,targetNode)和moveNode的参数类似。action可以是after,before,add,对应添加的位置。

作者: zuzjx    时间: 2013-7-26 13:43:18

felt 发表于 2013-7-26 12:54
addNode(node,index,parentNode)
这个Api上描述的不好,稍后我们会修正,
应该为addNode(node,action,targe ...

UI上面节点复制的情况可以解决吗?
作者: felt    时间: 2013-7-26 13:50:06

UI上面节点复制的情况可以解决吗?

没看懂,能说详细点吗
作者: zuzjx    时间: 2013-7-26 14:20:06

felt 发表于 2013-7-26 13:50
没看懂,能说详细点吗

addNode ( node, index, parentNode )。这个测试OK,但是新建时,UI上会复制父节点下的字节点到新建位置的下面

意思是当我index不为0时,我在最下面操作add时,会复制parentNode下面的所有子节点到新添加节点下面去了
作者: felt    时间: 2013-7-26 14:34:24

addnode(node,index,parentNode)
中间参数为index的时候是给parentNode添加子节点,index表示插入子节点的位置。
我刚测试了下,0的时候是插入到parentNode下原有第一个节点的上面,1的时候是插入到原有第一个节点的下面,2的时候是插入到原有第二个节点的下面,没什么问题。。。
作者: zuzjx    时间: 2013-7-26 14:46:10

felt 发表于 2013-7-26 14:34
addnode(node,index,parentNode)
中间参数为index的时候是给parentNode添加子节点,index表示插入子节点的 ...

    var cnode = tree.getSelected();
    var node = tree.getParentNode(cnode);
    var path = "";
    var c = tree.getChildNodes(node).length;
    if (typeof cnode == "undefined") {
        mini.alert("请选择一项");
        return;
    } else {
        path = cnode.parent_path;
    }
    var newRow = {
        parent_path : path
    };
    tree.addNode(newRow, c, node);
    tree.validateRow(newRow); //加入新行,马上验证新行
我点击2这一列时,执行上面JS,想在34下面添加一行。但是下面复制了一遍

作者: factory    时间: 2013-7-26 15:08:57

zuzjx 发表于 2013-7-26 14:46
var cnode = tree.getSelected();
    var node = tree.getParentNode(cnode);
    var path = "";

[attach]2424[/attach]

  1. function a() {
  2.             var tree = mini.get("tree1");
  3.             var node = tree.getSelected();
  4.             var pNode = tree.getParentNode(node);
  5.             var l = tree.getChildNodes(pNode).length;

  6.             var newNode = {};

  7.             tree.addNode(newNode, l, pNode);
  8.         }
复制代码

监听的事件是onnodeclick="a",我点了3次,正确在最下面加了3个节点
没有问题,肯定是你哪里出错了,你自己调试看看,为什么把其他的节点都给加进来了


作者: zuzjx    时间: 2013-7-26 15:44:08

本帖最后由 zuzjx 于 2013-7-26 16:28 编辑
factory 发表于 2013-7-26 15:08
监听的事件是onnodeclick="a",我点了3次,正确在最下面加了3个节点
没有问题,肯定是你哪里出错了, ...

调试的时候进入addNode方法了~~,如果不是length,而是length-1 则不会出现这个问题。
当滚动时,新增的就消失了。。

[attach]2428[/attach]画红线的为新增的那行

作者: zuzjx    时间: 2013-7-26 21:34:05

本帖最后由 zuzjx 于 2013-7-29 09:43 编辑
factory 发表于 2013-7-26 15:08
监听的事件是onnodeclick="a",我点了3次,正确在最下面加了3个节点
没有问题,肯定是你哪里出错了, ...

版主,你们好。问题我已经解决了。是因为treegrid加了一个属性,请问这个属性是否会有影响 属性是:virtualScroll="true"。请问怎么回事呢?
作者: niko    时间: 2013-7-27 09:48:22

有没示例说明你的问题?
作者: zuzjx    时间: 2013-7-29 09:44:29

本帖最后由 zuzjx 于 2013-7-29 09:48 编辑
niko 发表于 2013-7-27 09:48
有没示例说明你的问题?

请问要什么示例?我这边是以前没有使用那个冲突属性,后来数据量大了,看有这个属性,才加上的。然后操作treegrid就出问题了。不管addnode还是tree的拖拽移动,只要牵涉到表格的变化都会有问题(ui上面出现行级复制),但是这个复制貌似有问题,有的时候将页面动动,复制的ui就会消失了。因为JS不精通,所以只能提问题,暂不能提供帮助啦~~~
作者: plusoft_admin    时间: 2013-7-29 10:28:56

zuzjx 发表于 2013-7-26 21:34
版主,你们好。问题我已经解决了。是因为treegrid加了一个属性,请问这个属性是否会有影响 属性是:virtua ...

虚拟滚动是动态的去显示节点,没有保存的话会被刷新掉,你保存之后再去滚动
作者: zuzjx    时间: 2013-7-29 11:23:39

plusoft_admin 发表于 2013-7-29 10:28
虚拟滚动是动态的去显示节点,没有保存的话会被刷新掉,你保存之后再去滚动 ...

恩,我想要的结果已经解决了。




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