jQuery MiniUI

标题: tree问题 [打印本页]

作者: gry    时间: 2013-6-20 15:50:32     标题: tree问题

我现在的问题是:
1.checkRecursive     是否联动选择父子节点。比如选中父节点,自动全选子节点。
2.autoCheckParent  是否自动选择父节点。比如选中子节点,将父节点也自动选中。


3.checkRecursive =“false"  就是选中父节点子节点不选中
4.autoCheckParent ="true"就是选中子节点父节点也自动选中
现在是不起作用的,就是选中父节点子节点也选中了。不知这里是怎么回事。









作者: factory    时间: 2013-6-20 16:09:00

1。checkRecursive="false"
[attach]2205[/attach]

2.autoCheckParent="true"
[attach]2206[/attach]

没有问题

作者: gry    时间: 2013-6-20 16:46:09

本帖最后由 gry 于 2013-6-20 17:04 编辑
factory 发表于 2013-6-20 16:09
1。checkRecursive="false"

那我想实现的功能是:
1.选中子节点父节点自动选中
2.选中父节点子节点不选中
3.应该这样设置 checkRecursive="false"
        autoCheckParent="true"
4.但是现在问题出现了checkRecursive="false" 根本不起作用。
5.难道 checkRecursive    与 autoCheckParent  不能同时使用

6.已经确定:如果设置为 checkRecursive="false"
        autoCheckParent="true"    checkRecursive="false" 是不起作用的
依然可以联动选中

7.这两个属性是同时使用的






作者: factory    时间: 2013-6-20 17:07:14

gry 发表于 2013-6-20 16:46
那我想实现的功能是:
1.选中子节点父节点自动选中
2.选中父节点子节点不选中

是的,这样写是无法同时使用的
作者: gry    时间: 2013-6-20 17:07:17

gry 发表于 2013-6-20 16:46
那我想实现的功能是:
1.选中子节点父节点自动选中
2.选中父节点子节点不选中

在线等啊
作者: gry    时间: 2013-6-20 17:16:04

gry 发表于 2013-6-20 17:07
在线等啊

当然我可以把 autoCheckParent设置等于true   checkRecursive设置等于true。


可是我在动态加载是否选中的时候
tree.cascadeChild(tree.getRootNode(), function(node) {
                if (node.LX =="1") {
                    tree.checkNode(node);
                }
                else {
                    //mini.alert(node.LX);
                }
            });


if (node.LX =="1") {
                    tree.checkNode(node);
                }
可能受到checkRecursive="true"  的影响node=1是不起作用的,就是说只要这个节点下的子节点有一个选中,不管类型是什么,就会全部选中。
不知管理员是否明白我说的意思。
作者: factory    时间: 2013-6-20 17:18:02

gry 发表于 2013-6-20 17:16
当然我可以把 autoCheckParent设置等于true   checkRecursive设置等于true。

我知道你的意思。但是现在你2个这样设置,同时使用的话,确实是有这个问题的
作者: gry    时间: 2013-6-20 17:22:59

本帖最后由 gry 于 2013-6-20 17:25 编辑
factory 发表于 2013-6-20 17:18
我知道你的意思。但是现在你2个这样设置,同时使用的话,确实是有这个问题的 ...

那像这样的问题该怎么 解决?

这是我系统权限设置的部分,不能说我设置了某个子节点,但是我在修改的时候,发现和我同级的所有子节点都选中了,这样的问题怎么解释。

因为这个我弄了好久,刚以为是我哪里设置的不对,慢慢才发现,是miniui这两个属性不能同时使用的问题。


作者: niko    时间: 2013-6-20 17:31:15

1) 下载更新下版本
2) checkRecursive="false"
2) tree.setValue(value, false); 传递第二个参数,表示不联动选择

作者: gry    时间: 2013-6-20 18:05:28

niko 发表于 2013-6-20 17:31
1) 下载更新下版本
2) checkRecursive="false"
2) tree.setValue(value, false); 传递第二个参数,表示不联 ...

1.已经下载了最新版本
2.有点不太明白tree.setValue(value, false); 传递第二个参数,表示不联动选择
  这个在什么地方设置。
3. checkRecursive="false" 是否还得在tree中设置。

tree.cascadeChild(tree.getRootNode(), function(node) {
                if (node.LX =="1") {
                    tree.checkNode(node);
                    tree.setValue(node, false);
                }
                else {
                    
                    //mini.alert(node.LX);
                }
            });

是用上面的代码加载是否选中的,tree.setValue(value, false)设置在哪里。
请明示。

作者: gry    时间: 2013-6-21 08:41:49

gry 发表于 2013-6-20 18:05
1.已经下载了最新版本
2.有点不太明白tree.setValue(value, false); 传递第二个参数,表示不联动选择
   ...

麻烦版主,指点一下我的问题
作者: gry    时间: 2013-6-21 09:22:38

gry 发表于 2013-6-20 18:05
1.已经下载了最新版本
2.有点不太明白tree.setValue(value, false); 传递第二个参数,表示不联动选择
   ...

管理员指点一下啊!
作者: factory    时间: 2013-6-21 09:32:41

gry 发表于 2013-6-21 09:22
管理员指点一下啊!

就是把tree.checkNode(node) 设置选中节点,改成seetValue("value",false)这样试试
作者: gry    时间: 2013-6-21 09:43:49

factory 发表于 2013-6-21 09:32
就是把tree.checkNode(node) 设置选中节点,改成seetValue("value",false)这样试试

   if (node.LX =="1") {
                    tree.checkNode(node);
                    //tree.setValue(node, false);
                }


改成tree.setValue(node, false);后根本选不中节点
作者: factory    时间: 2013-6-21 10:24:16

gry 发表于 2013-6-21 09:43
if (node.LX =="1") {
                    tree.checkNode(node);
                    //tree.setVa ...

我说了,setValue(nodevalue,false)
不是setValue(node.false)
作者: gry    时间: 2013-6-21 14:18:19

本帖最后由 gry 于 2013-6-21 14:38 编辑
factory 发表于 2013-6-21 10:24
我说了,setValue(nodevalue,false)
不是setValue(node.false)

你说的tree.setValue(nodevalue,false);

1.nodevalue是node的节点代码吗?2.我就这样设置了 tree.setValue(node.powerid, false);powerid是我的节点代码,
   我设置了不起作用。
3.能否说的清楚一些,nodevalue东东到底是什么。

作者: factory    时间: 2013-6-21 14:57:10

gry 发表于 2013-6-21 14:18
你说的tree.setValue(nodevalue,false);

1.nodevalue是node的节点代码吗?2.我就这样设置了 tree.setVal ...

tree不是有valueField和textField吗?
nodevalue 就是你的node的valueField
作者: gry    时间: 2013-6-21 17:27:01

本帖最后由 gry 于 2013-6-21 17:31 编辑
factory 发表于 2013-6-21 14:57
tree不是有valueField和textField吗?
nodevalue 就是你的node的valueField

1.这是tree
<ul id="tree1" class="mini-tree" style="width: 200px; padding: 5px;"
            textfield="powertext" idfield="powerid" parentfield="parentid" resultastree="false"
            showcheckbox="true"    autoCheckParent="true"><%-- checkRecursive="true" --%>
        </ul>

2.下面是我node的对象有如下属性

LX: "0"
_id: 4
_level: 1
_pid: 1
_uid: 4
checked: undefined
expanded: false
parentid: "20"
powerid: "2003"
powertext: "版本控制管理"
__proto__: Object


[attach]2211[/attach]

你说的:nodevalue 就是你的node的valueField
这里面没有valueField,获取就是undefined,不起作用啊。
所有我以为valueField就是我现在的powerid,也说了不管用。
都试过了,一点作用也没有,郁闷啊。









作者: niko    时间: 2013-6-21 17:34:41

参考权限树示例:http://www.miniui.com/demo/#src=tree/functiontree.html
这里有设置节点的操作。
tree.setValue("forms");
你修改成:
tree.setValue("forms", false);
就不会联动了。
作者: gry    时间: 2013-6-21 17:42:05

本帖最后由 gry 于 2013-6-21 17:46 编辑
niko 发表于 2013-6-21 17:34
参考权限树示例:http://www.miniui.com/demo/#src=tree/functiontree.html
这里有设置节点的操作。
tree.s ...

不是,弄了半天,我想知道一个问题,是我弄错了,还是什么问题,你现在让我照那个demo做,就因为这个已经弄了一天了,反复在思考你给回复的话,这不是浪费时间吗?
你就告诉我哪里错了?

作者: niko    时间: 2013-6-22 09:45:18

1.checkRecursive="false"
2.autoCheckParent="true"
3.你不要在cascadeChild中遍历setValue,那样不是把值重新设置吗?
   应该是: tree.setValue("id1,id2,id3", false); 只设置一次。多个节点id用“,”分隔。

比如:tree.setValue("id1", false);
然后:tree.setValue("id2", false);
我们只会认为你最后设置了id2,而不是id1+id2
tree.setValue("id1,id2", false); 这样才是

作者: gry    时间: 2013-6-22 09:59:10

本帖最后由 gry 于 2013-6-22 10:20 编辑
niko 发表于 2013-6-22 09:45
1.checkRecursive="false"
2.autoCheckParent="true"
3.你不要在cascadeChild中遍历setValue,那样不是把值 ...

1.感谢你的回答,你说对了,确实是重新设置了,所以没有达到我想要的效果,这也是你们管理员指点的呀,你也看到了我们之间的交流了,弄得我郁闷了一天,我就感觉他那样说的不对吗?不过没关系,我已经弄好了。这个问题就不说了。
2. mini.get("username").focus();获取焦点问题。
3.我在页面加载的时候设置了某个文本框获取焦点,这个是没有问题的。
4.我在这个文本框做了一个onenter回车事件,问题来了,是没有反应的,必须是我把焦点移开,然后在点进去,这个事件才触发,不知是怎么回事。
5.我测试了原生态的input是没有这个问题的。


6.问题二,在我ajax验证了某个编号是否重复时,比如这个编号已经重复了,我做了如下操作。
mini.get("username").focus();   mini.alert(o.messageContent);
注:messageContent=“编号重复”
这个文本框没有获取到焦点。
分析是mini.alert(o.messageContent);引起的。






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