jQuery MiniUI

标题: 怎样设置某些节点在一开始加载树的时候就默认选中选中节 [打印本页]

作者: danny    时间: 2014-5-18 15:33:36     标题: 怎样设置某些节点在一开始加载树的时候就默认选中选中节

加载树的时候,某些节点被选中,怎么设置,动态被选中的,根据不同的条件,选中某些节点?

作者: felt    时间: 2014-5-19 09:35:16

tree.setValue(value)
作者: danny    时间: 2014-5-19 13:42:37

felt 发表于 2014-5-19 09:35
tree.setValue(value)

谢谢,问题解决了。树控件有没有监听事件,就是可以监听到我点击了哪个节点,然后把节点的值放在另外一个控件中?
作者: felt    时间: 2014-5-19 13:47:11

danny 发表于 2014-5-19 13:42
谢谢,问题解决了。树控件有没有监听事件,就是可以监听到我点击了哪个节点,然后把节点的值放在另外一个 ...

有onnodeclick,onnodeselect之类的事件
http://www.miniui.com/docs/api/index.html#ui=tree
作者: danny    时间: 2014-5-19 13:52:58

felt 发表于 2014-5-19 13:47
有onnodeclick,onnodeselect之类的事件
http://www.miniui.com/docs/api/index.html#ui=tree

谢谢,那有没有选中某个节点的监听事件?
作者: felt    时间: 2014-5-19 13:54:27

danny 发表于 2014-5-19 13:52
谢谢,那有没有选中某个节点的监听事件?

onnodeclick 节点点击时触发
onnodeselect 节点选中时触发
作者: danny    时间: 2014-5-19 13:58:19

felt 发表于 2014-5-19 13:54
onnodeclick 节点点击时触发
onnodeselect 节点选中时触发

谢谢,是不是把事件写到控件中,然后调用方法?
作者: felt    时间: 2014-5-19 14:12:30

danny 发表于 2014-5-19 13:58
谢谢,是不是把事件写到控件中,然后调用方法?

请参考我们的demo
MiniUI事件绑定一种是直接写在标签上   onclick="function"
另一种是js绑定  control.on("click",funcition(e){})
作者: danny    时间: 2014-5-19 14:17:19

felt 发表于 2014-5-19 14:12
请参考我们的demo
MiniUI事件绑定一种是直接写在标签上   onclick="function"
另一种是js绑定  control.o ...

<ul id="tree2" class="mini-tree" url="data/privilegetree.ashx" style="width: 100%;
            padding: 5px;" showtreeicon="true" textfield="Privilegename" idfield="Privilegeid"
            parentfield="Privilegeparentid" resultastree="false" showcheckbox="true" checkrecursive="false"
            onbeforenodecheck="onBeforeNodeCheck" allowselect="false" enablehottrack="false" onbeforeexpand="onBeforeExpand" onnodeselect="onNodeSelect" >
        </ul>

//监听点击事件
        function onNodeSelect(e) {
            var tree = e.sender;
            var nowNode = e.node;
            var node = tree.getValue(true);
            var nodes = tree.getCheckedNodes();

            var pid = "";
            var pname = "";
            for (var i = 0; i < nodes.length; i++) {
                pid += nodes.Privilegeid + ",";
                pname += nodes.Privilegename + ",";
            }
            pid = pid.substr(0, pid.length - 1);
            pname = pname.substr(0, pname.length - 1);
            document.getElementById("txtPrivilegeName").value = pname;

            $("#txtPrivilegeID").val(pid);
            $("#temp").val(pname);

            var old = document.getElementById("old").value;
            var temp = document.getElementById("temp").value;

            $("#txtPriviName").val(old +temp);
        }

是这样写吗?
作者: felt    时间: 2014-5-19 14:33:44

danny 发表于 2014-5-19 14:17
//监听点击事件
        function onNodeSelect(e) {
            var tree = e.sender;

应该可以的
$("#txtPrivilegeID")
$("#temp")
都是html控件吗?
作者: danny    时间: 2014-5-19 14:48:55

本帖最后由 danny 于 2014-5-19 14:50 编辑
felt 发表于 2014-5-19 14:33
应该可以的
$("#txtPrivilegeID")
$("#temp")

不是,是服务器控件。我这个监听方法好像没有执行,控件接收没有问题,主要没有触发这个事件。我下断点都没有执行进去
作者: felt    时间: 2014-5-19 15:28:13

danny 发表于 2014-5-19 14:48
不是,是服务器控件。我这个监听方法好像没有执行,控件接收没有问题,主要没有触发这个事件。我下断点都没 ...

这些都是我们控件的标准事件,怎么会不触发呢
你在我们试用包的demo上试一下
作者: danny    时间: 2014-5-19 15:32:02

本帖最后由 danny 于 2014-5-19 15:49 编辑
felt 发表于 2014-5-19 15:28
这些都是我们控件的标准事件,怎么会不触发呢
你在我们试用包的demo上试一下 ...

我就是刚才给你发的那样写的方法,我选中节点就没有触发事件,使用你们写好的demo中的事件,肯定没有问题。但是写到我程序中就不可以了.
<ul id="tree2" class="mini-tree" url="data/privilegetree.ashx" style="width: 100%;
            padding: 5px;" showtreeicon="true" textfield="Privilegename" idfield="Privilegeid"
            parentfield="Privilegeparentid" resultastree="false" showcheckbox="true" checkrecursive="false"
            allowselect="false" enablehottrack="false" onnodeselect="onNodeSelect" >
        </ul>

onnodeselect="onNodeSelect"这个就是那个监听事件
function onNodeSelect(e) {}这个是方法,但是都没有执行这个方法?

我在demo中也试了一下,还是不行,方法没有执行。

作者: felt    时间: 2014-5-19 16:03:22

danny 发表于 2014-5-19 15:32
我就是刚才给你发的那样写的方法,我选中节点就没有触发事件,使用你们写好的demo中的事件,肯定没有问题 ...

请更新最新版本
作者: felt    时间: 2014-5-19 16:03:22

danny 发表于 2014-5-19 15:32
我就是刚才给你发的那样写的方法,我选中节点就没有触发事件,使用你们写好的demo中的事件,肯定没有问题 ...

请更新最新版本
作者: danny    时间: 2014-5-19 16:06:48

felt 发表于 2014-5-19 16:03
请更新最新版本

最新的boot.js吗
作者: felt    时间: 2014-5-19 16:16:35

danny 发表于 2014-5-19 16:06
最新的boot.js吗

全部js和css
http://www.miniui.com/demo/#src=tree/navtree.html
这个demo就是监听的onnodeselect
作者: danny    时间: 2014-5-19 16:27:58

本帖最后由 danny 于 2014-5-19 16:31 编辑
felt 发表于 2014-5-19 16:16
全部js和css
http://www.miniui.com/demo/#src=tree/navtree.html
这个demo就是监听的onnodeselect ...

更新到最新的,但是还是不可以的.我下载更新最新日期是2014.5.5号的那一版
作者: felt    时间: 2014-5-19 16:32:10

danny 发表于 2014-5-19 16:27
更新到最新的,但是还是不可以的

打开试用包里demo/tree/navtree.html运行,点击左侧树节点看效果

作者: danny    时间: 2014-5-19 16:47:05

felt 发表于 2014-5-19 16:32
打开试用包里demo/tree/navtree.html运行,点击左侧树节点看效果

嗯,看到效果了,但是不知道怎么回事,在我这边还是没有响应,js已经是最新的,还有CSS
作者: felt    时间: 2014-5-19 17:24:14

danny 发表于 2014-5-19 16:47
嗯,看到效果了,但是不知道怎么回事,在我这边还是没有响应,js已经是最新的,还有CSS ...

那你和demo比较下,是不是有什么地方写错了。。
作者: danny    时间: 2014-5-19 17:29:42

本帖最后由 danny 于 2014-5-19 17:30 编辑
felt 发表于 2014-5-19 17:24
那你和demo比较下,是不是有什么地方写错了。。

几乎都是一样的,onnodeselect="onNodeSelect" 标签形式。function onNodeSelect(e)
        {}定义方法,和demo中一样。但是我现在的问题是,我跟踪的时候,根本就没有进入那个方法,也就是没有执行,但是也没有报错。
其他事件都支持,从demo中找的自动折叠的事件就没有问题,但是点击监听事件就不行。

作者: factory    时间: 2014-5-19 17:43:52

danny 发表于 2014-5-19 17:29
几乎都是一样的,onnodeselect="onNodeSelect" 标签形式。function onNodeSelect(e)
        {}定义方法 ...

onnodeselect="alert(1)"

行不行?
作者: danny    时间: 2014-5-19 18:05:35

factory 发表于 2014-5-19 17:43
onnodeselect="alert(1)"

行不行?

不行,没有弹出,估计这个监听事件没有起作用
作者: factory    时间: 2014-5-20 09:32:12

danny 发表于 2014-5-19 18:05
不行,没有弹出,估计这个监听事件没有起作用

你手动选择的还是什么?onnodeselect是肯定没问题的,测试过了
作者: danny    时间: 2014-5-20 09:40:02

本帖最后由 danny 于 2014-5-20 10:00 编辑
factory 发表于 2014-5-20 09:32
你手动选择的还是什么?onnodeselect是肯定没问题的,测试过了

手动选择的,就是使用的checkboxtree,勾选要选择的节点。目的是在勾选的同时将值传给我的其他的控件.是不是因为我是使用checknode,对于onnodeselect这个事件不能使用。





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