jQuery MiniUI

标题: checkbox树节点,当选中父节点的时候 [打印本页]

作者: 344457761    时间: 2017-3-13 09:26:49     标题: checkbox树节点,当选中父节点的时候

本帖最后由 344457761 于 2017-3-13 09:29 编辑

[attach]8932[/attach]checkbox树节点,当选中父节点的时候,子节点都会被选中,现在我想实现当选中父节点的时候,子节点没有复选框的不会被选中,请问这么做呀,请教

就是我选中10的时候,想取到1010576,10578,10579的id  ,现在是选中10的时候 会把1010的id也穿过来了 怎么处理呀

作者: wise    时间: 2017-3-13 09:45:31

绘制树,把你不需要的子数组的选中框给取消掉
作者: 344457761    时间: 2017-3-13 10:03:16

wise 发表于 2017-3-13 09:45
绘制树,把你不需要的子数组的选中框给取消掉


//绘制单元格 已选择的分类删去多选框
    function onDrawNode(e) {
        var node = e.node;
                if(node.cid){
                        e.showCheckBox = false;
                }
    }
这样做吗,这样只是把复选框删除了,但是还是会传过来他的id

作者: dforce    时间: 2017-3-13 11:11:56

344457761 发表于 2017-3-13 10:03
//绘制单元格 已选择的分类删去多选框
    function onDrawNode(e) {
        var node = e.node;

[attach]8935[/attach]这只是绘制,只是不显示了checkbox,既然联动,父节点选中了,还是会联动选中子节点的。
如果有强控制,只能去掉我们的联动关系,自己处理逻辑,类似这个示例
作者: 344457761    时间: 2017-3-13 13:48:45

本帖最后由 344457761 于 2017-3-13 13:50 编辑
dforce 发表于 2017-3-13 11:11
这只是绘制,只是不显示了checkbox,既然联动,父节点选中了,还是会联动选中子节点的。
如果有强控制, ...

哎呀 真的厉害呀 膜拜了  我这有个小问题  为什么我勾选了一条子类 他显示数字2两条 呢
而且 我没有自动勾选父类 checkRecursive="false" autoCheckParent="false"
json数据是这样的
{"id":120931,"code":"01","name":"钢材","parCode":null,"unit":"kg","tempAmount":0,"desc":"12","keywords":"test","cid":"01"},{"id":120932,"code":"02","name":"圆钢","parCode":"01","unit":"kg","tempAmount":0,"desc":null,"keywords":"test","cid":null}
[attach]8944[/attach][attach]8943[/attach]
作者: dforce    时间: 2017-3-13 16:27:44

344457761 发表于 2017-3-13 13:48
哎呀 真的厉害呀 膜拜了  我这有个小问题  为什么我勾选了一条子类 他显示数字2两条 呢
而且 我没有自动勾 ...

请提供完整的数据分析,你也可以自己分析一下,上面我发的只是简单的代码,可能有些特殊的情况没排除,需要你优化一下
作者: 344457761    时间: 2017-3-13 17:02:03

dforce 发表于 2017-3-13 16:27
请提供完整的数据分析,你也可以自己分析一下,上面我发的只是简单的代码,可能有些特殊的情况没排除,需 ...

现在出现选择02的时候  会把01 02 的id都传过来了
作者: dforce    时间: 2017-3-13 18:32:37

344457761 发表于 2017-3-13 17:02
现在出现选择02的时候  会把01 02 的id都传过来了

是我的代码的问题,没考虑子节点全选到父节点选中之间的细节,父节点没checkbox的情况没考虑。
你自己先修改一下。
作者: 344457761    时间: 2017-3-13 18:49:04

dforce 发表于 2017-3-13 18:32
是我的代码的问题,没考虑子节点全选到父节点选中之间的细节,父节点没checkbox的情况没考虑。
你自己先 ...

好的辛苦了  我先修改下  要是我弄不好 明天再找你
作者: 344457761    时间: 2017-3-14 09:29:23

dforce 发表于 2017-3-13 18:32
是我的代码的问题,没考虑子节点全选到父节点选中之间的细节,父节点没checkbox的情况没考虑。
你自己先 ...

昨天弄了一夜 没弄好 版主帮忙看下吧
作者: 344457761    时间: 2017-3-14 09:55:20

344457761 发表于 2017-3-14 09:29
昨天弄了一夜 没弄好 版主帮忙看下吧

grid.on("nodecheck", function (e) {
                var node = e.node;
            var nodes = grid.getAllChildNodes(node);
                if (!grid.isLeaf(node)&&grid.isCheckedNode(node)) {
                    for (var i = 0, l = nodes.length; i < l; i++) {
                            if (nodes.cid==null) {
                            grid.checkNode(nodes);
                        } else {

                        }
                    }
                }else{
                        for (var i = 0, l = nodes.length; i < l; i++) {
                            if (nodes.cid==null) {
                            grid.uncheckNode(nodes);
                        } else {
                               
                        }
                    }
                }

            });

这样感觉可以了
作者: felt    时间: 2017-3-14 14:38:34

344457761 发表于 2017-3-14 09:55
grid.on("nodecheck", function (e) {
                var node = e.node;
            var nodes = grid.getAl ...

[attach]8951[/attach]
我修改了一下。
后面我们准备做个插件,用插件形式实现不同的选择模型。


作者: 344457761    时间: 2017-3-14 19:55:28

felt 发表于 2017-3-14 14:38
我修改了一下。
后面我们准备做个插件,用插件形式实现不同的选择模型。

支持大力支持                                       




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