jQuery MiniUI

标题: treeGird怎么禁用选择框 [打印本页]

作者: ruxia    时间: 2013-5-29 10:36:23     标题: treeGird怎么禁用选择框

本帖最后由 ruxia 于 2013-5-29 10:37 编辑

treeGird怎么禁用选择框,是根据条件来做判断是否禁用选择框,不是不显示选择框哦!

作者: factory    时间: 2013-5-29 12:09:18

只能不显示选择框,无法做到禁用
作者: gong_cnwh    时间: 2013-5-29 17:38:39

factory 发表于 2013-5-29 12:09
只能不显示选择框,无法做到禁用

怎样不显示啊?
我想实现父节点没有选择框,但是子节点有选择框,不知道怎么做,请教~~
作者: factory    时间: 2013-5-29 17:45:10

gong_cnwh 发表于 2013-5-29 17:38
怎样不显示啊?
我想实现父节点没有选择框,但是子节点有选择框,不知道怎么做,请教~~ ...

通过ondrawcell,来修改单元格的e.cellHtml="" ,让单元格内部的checkbox的html没有就不显示了

参考:http://www.miniui.com/demo/#src=treegrid/drawcell.html
作者: gong_cnwh    时间: 2013-5-29 17:52:57

factory 发表于 2013-5-29 17:45
通过ondrawcell,来修改单元格的e.cellHtml="" ,让单元格内部的checkbox的html没有就不显示了

参考:ht ...

不好意思,我看错了,我想说的是tree中,怎么样不显示选择框,只是不显示父节点的选择框,不知道可不可以实现。。
作者: niko    时间: 2013-5-29 18:44:00

showFolderCheckBox="false"
作者: gong_cnwh    时间: 2013-5-30 08:10:38

niko 发表于 2013-5-29 18:44
showFolderCheckBox="false"

谢谢,这样确实可以,但是当我选中子节点然后删除后,tree1.removeNode(node1);
父节点就会变成子节点,前面的图标变了,然后也多出了选择框,该怎么处理呢?
作者: factory    时间: 2013-5-30 10:53:46

gong_cnwh 发表于 2013-5-30 08:10
谢谢,这样确实可以,但是当我选中子节点然后删除后,tree1.removeNode(node1);
父节点就会变成子节点, ...

我们处理下这个问题
作者: gong_cnwh    时间: 2013-5-30 11:23:27

factory 发表于 2013-5-30 10:53
我们处理下这个问题

还有一个问题额,我参考的是http://www.miniui.com/demo/tree/between.html,然后结合checkbox,左边多个勾选,然后点击before按钮,移动到右边,但是我并没有tree1.removeNode(node1);让左边的信息消失。
结果导致移动之后,左边的还是勾选的,但是如果不改变勾选的信息,再点Before按钮,tree1.getCheckedNodes (false)就获取不到值。
作者: factory    时间: 2013-5-30 11:30:10

gong_cnwh 发表于 2013-5-30 11:23
还有一个问题额,我参考的是http://www.miniui.com/demo/tree/between.html,然后结合checkbox,左边多个 ...

已经修复好了,你去下载更新下
作者: factory    时间: 2013-5-30 11:32:16

gong_cnwh 发表于 2013-5-30 11:23
还有一个问题额,我参考的是http://www.miniui.com/demo/tree/between.html,然后结合checkbox,左边多个 ...

你把左侧获取出来的数据,var rigthData = mini.clone(data);克隆下试试,再给到右边的tree
作者: gong_cnwh    时间: 2013-5-30 11:51:41

本帖最后由 gong_cnwh 于 2013-5-30 12:31 编辑
factory 发表于 2013-5-30 11:32
你把左侧获取出来的数据,var rigthData = mini.clone(data);克隆下试试,再给到右边的tree ...

1.没大理解怎么克隆,左侧需要取出数据,那就还是需要勾选,
2.为啥不就用tree2.addNode(node1, "add", node2);
作者: factory    时间: 2013-5-30 14:01:47

gong_cnwh 发表于 2013-5-30 11:51
1.没大理解怎么克隆,左侧需要取出数据,那就还是需要勾选,
2.为啥不就用tree2.addNode(node1, "add", no ...

结果导致移动之后,左边的还是勾选的,但是如果不改变勾选的信息,再点Before按钮,tree1.getCheckedNodes (false)就获取不到值。

移动之后,左边还是勾选,继续点移动按钮,依旧可以获取到check的nodes的,我测试过了
作者: gong_cnwh    时间: 2013-5-30 14:22:35

本帖最后由 gong_cnwh 于 2013-5-30 14:25 编辑
factory 发表于 2013-5-30 14:01
结果导致移动之后,左边的还是勾选的,但是如果不改变勾选的信息,再点Before按钮,tree1.getCheckedNode ...

1.好吧,我这儿做的代码是
var nodes1 = tree1.getCheckedNodes (false);//不包含父节点的子节点        
alert(nodes1.length);
我发现它获取的length永远是新增的,比如说第一次勾选A,B,那么长度就是2,此时这俩节点它自己没有取消,然后再继续勾选C,那么获取的长度就是1了,它没有把之前勾选的信息获取到,但是显示给用户看的还是勾中的。就是说如果用户不重新选择的话,就会提示他没有勾选
2.所以,我想我问的是移过去之后,有没有办法使移动的这几个节点在树的两侧都不应该保持勾选状态,使用tree2.addNode(node1, dragAction, node2); 之后,tree2.uncheckNode(node1);在tree2中确实取消勾选了,但是tree1.uncheckNode(node1);在tree1中就没有效果
作者: factory    时间: 2013-5-30 14:32:27

gong_cnwh 发表于 2013-5-30 14:22
1.好吧,我这儿做的代码是
var nodes1 = tree1.getCheckedNodes (false);//不包含父节点的子节点        
...

[attach]2078[/attach]
我第一次移动json和date 这2个节点

[attach]2079[/attach]

然后在不取消json和date的情况下,继续选中control,alert的nodes.length,是3,而不是你说的1啊
没有问题


作者: gong_cnwh    时间: 2013-5-30 14:43:51

factory 发表于 2013-5-30 14:32
我第一次移动json和date 这2个节点

额,我的就是设置了showFolderCheckBox="false"父节点无复选框,Before按钮点击事件tree1.getCheckedNodes (false);是这样吧。。
[attach]2080[/attach]再多勾选一个就是这个图[attach]2081[/attach]

还请教一个问题,我不允许树内部拖动,不知道如何根据dragNode和dropNode判断是不是同一个tree上的啊?




作者: factory    时间: 2013-5-30 15:23:42

gong_cnwh 发表于 2013-5-30 14:43
额,我的就是设置了showFolderCheckBox="false"父节点无复选框,Before按钮点击事件tree1.getCheckedNode ...

已经新增了 无法拖到自己,但是可以拖向别的tree 的功能
代码
给2棵tree都增加 ongivefeedback="onGiveFeedback"事件

function onGiveFeedback(e) {
            if (e.sender == e.from) {
                e.effect = "no";
            }
        }

到6月1日我们会发布更新版本,到时候下载更新下,就可以用以上代码了
作者: gong_cnwh    时间: 2013-5-30 15:27:29

factory 发表于 2013-5-30 15:23
已经新增了 无法拖到自己,但是可以拖向别的tree 的功能
代码
给2棵tree都增加 ongivefeedback="onGiveFe ...

嗯,谢谢!
前面那个问题。。。不知道你那边讲父节点设置为无复选框,结果还对不对,实在不知道哪儿的问题啊
作者: factory    时间: 2013-5-30 15:39:37

gong_cnwh 发表于 2013-5-30 15:27
嗯,谢谢!
前面那个问题。。。不知道你那边讲父节点设置为无复选框,结果还对不对,实在不知道哪儿的问 ...

[attach]2082[/attach]

一样是可以的。你先去官网更新下现在版本的miniui,看看能否解决你说的这个问题

到6月1日再更新成 无法拖向自己,只能拖向别的tree  


作者: gong_cnwh    时间: 2013-5-30 16:22:15

factory 发表于 2013-5-30 15:39
一样是可以的。你先去官网更新下现在版本的miniui,看看能否解决你说的这个问题

到6月1日再更新成 无 ...

我找到问题了,执行添加节点语句tree2.addNode(node1,  dragAction, node2);的同时,如果也执行了tree2.uncheckNode(nodes1);  就会出现我说的获取的选中节点不对的问题,不知道这算不算一个bug
作者: factory    时间: 2013-5-31 09:00:52

gong_cnwh 发表于 2013-5-30 16:22
我找到问题了,执行添加节点语句tree2.addNode(node1,  dragAction, node2);的同时,如果也执行了tree2.un ...

你不是还是要保持选中的状态吗?为什么要执行uncheckNode(),不执行好了
作者: gong_cnwh    时间: 2013-5-31 13:47:23

factory 发表于 2013-5-31 09:00
你不是还是要保持选中的状态吗?为什么要执行uncheckNode(),不执行好了

不需要保持啊,从左边选中然后移动到右边,如果不执行uncheckNode(),左右两边就都是选中的,我不需要他们选中,结果就是addNode()和uncheckNode() 同时用到导致我说的那个错误。
而且我觉得从左边移动到右边,右边不应该保持选中状态吧。。。
作者: factory    时间: 2013-5-31 14:14:25

gong_cnwh 发表于 2013-5-31 13:47
不需要保持啊,从左边选中然后移动到右边,如果不执行uncheckNode(),左右两边就都是选中的,我不需要他 ...

我之前跟你说过,要mini.clone()一下的
var node1 = tree1.getCheckedNodes(false);
var nodes = mini.clone(node1);

var node2 = tree2.getSelectedNode();

tree2.addNodes(nodes, node2);
tree1.uncheckNodes(node1);

这样就正确了
作者: gong_cnwh    时间: 2013-5-31 14:33:37

factory 发表于 2013-5-31 14:14
我之前跟你说过,要mini.clone()一下的
var node1 = tree1.getCheckedNodes(false);
var nodes = mini.cl ...

额,明白了,不明白为什么要clone,不过这样就没问题了,谢谢!
作者: factory    时间: 2013-5-31 14:34:50

gong_cnwh 发表于 2013-5-31 14:33
额,明白了,不明白为什么要clone,不过这样就没问题了,谢谢!

把数据克隆复制一下,一般对于跨页面的数据,还有2个表格之间的数据的移动之类的,都需要克隆下数据




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