【问题标题】:Create TreeView from existing TreeView's checked checkboxes从现有 TreeView 的选中复选框创建 TreeView
【发布时间】:2017-03-14 15:06:03
【问题描述】:

我正在尝试为现有动态树视图中的特定节点创建“动态用户访问”。

主 TreeView 包含复选框并从数据库中填充。 我在数据库中有第二个表,其中存储了对此 TreeView 的用户访问权限。

问题是当我尝试设置用户访问时,主树视图中没有“三态复选框”,并且某些节点的 Ref-ID 不会成为回发的一部分。我正在使用javascript:

Treeview in web form check child nodes on parent node check

由于缺少不属于回发的父节点(Ref-Node),我无法从回发中的数据构建新的树视图。

下面突出显示的树视图图像显示了问题,当取消选中橱柜 2 时,房间 2 未选中,但位置 1 和 Demotop 也是如此。 Room1(位置 1)的引用节点不是选中复选框的一部分,然后数据库中的引用丢失! 有关如何解决此问题的任何建议?

[ []

【问题讨论】:

    标签: javascript asp.net treeview


    【解决方案1】:

    最终使用 Dynatree 而不是树视图。

    在此支持下: How can I read parent nodes with partly selected child nodes

    这段代码解决了我的问题:

        $(function () {
            $("#tree").dynatree({
                checkbox: true,
                selectMode: 3,
                onSelect: function (select, node) {
                    var selKeys = $.map(node.tree.getSelectedNodes(), function (node) {
                        return node.data.key;
                    });
                    var partsel = new Array();
                    $(".dynatree-partsel:not(.dynatree-selected)").each(function () {
                        var node = $.ui.dynatree.getNode(this);
                        partsel.push(node.data.key);
                    });
    
                    selKeys = selKeys.concat(partsel);                 
                },
                onClick: function (node, event) {
    
                    if (node.getEventTargetType(event) == "title")
                        node.toggleSelect();
                },
                onDblClick: function (node, event) {
                    node.toggleSelect();
                },
                onKeydown: function (node, event) {
                    if (event.which == 32) {
                        node.toggleSelect();
                        return false;
                    }
                }           
            });
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-22
      • 1970-01-01
      • 1970-01-01
      • 2010-11-29
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多