【问题标题】:How to change fancytree SelectMode on a button click event?如何在按钮单击事件上更改 fancytree SelectMode?
【发布时间】:2017-10-01 03:52:49
【问题描述】:

我正在使用名为 fancytree (Here is the link) 的树视图/树网格插件

我最初(当页面加载时)将 selectMode 设置为 2,这允许用户选择多个选项。

        // Init 
    $("#Organizations .OrgTree").each(function () {
        var $this = $(this);
        var organizationUnitId = $this.data("orgid");
        //var treeData = JSON.parse($("#treeData_" + organizationUnitId).val());          
        $this.fancytree({
            extensions: ["persist"],
            selectMode: 2,
            persist: {
                expandLazy: true
                store: "auto" 'session': sessionStore
            },
            icons: false,
            checkbox: true,
            toggleEffect: null, //disable animations
            source: window["treeData_" + organizationUnitId], // treeData               
            lazyLoad: function (event, data) {
                var node = data.node;
                data.result = {
                    // Some data
                };
            }
        });
    });

我想要做的是,当我点击一个按钮时,我想改变 selectMode 并将其设置为 1 或 3。 我试图通读文档并找到this as well 但我不会工作。这是一些代码:

        //Bind click to search button
    $("#changeSelectModeBtn").click(function () {

        debugger;
        $("#Organizations .OrgTree").fancytree("getTree").visit(function (node) {
            node.setSelected(false);
        });

        $("#Organizations .OrgTree").fancytree({ selectMode: 3 });

        var selectedKeys = [];

        $("#Organizations .OrgTree").each(function () {

            var $this = $(this);
            var orgTree = $(this).fancytree("getTree");
            var selectedParentNodes = orgTree.getSelectedNodes();
            for (node in selectedParentNodes) {
                selectedKeys.push(selectedParentNodes[node].key)
            }

            // Save orgtree in hidden fields
            var organizationUnitId = $this.data("orgid");
            var treeData = orgTree.toDict(true);
            window["treeData_" + organizationUnitId] = treeData.children; //$("#treeData_" + organizationUnitId).val(JSON.stringify(treeData.children))

        });

        if (selectedKeys) {
            $("#HiddenOrganizationUnitIds").val(selectedKeys.join(","));
        }
    })

有人可以帮帮我吗? 提前致谢!

【问题讨论】:

    标签: javascript jquery treeview fancytree


    【解决方案1】:

    所有选项都可以使用 jQuery 小部件模式动态设置。 例如,您可以使用

    $("#tree").fancytree("option", "selectMode", 3);
    

    另见https://github.com/mar10/fancytree/wiki#configure-options

    【讨论】:

    • 那篇文章是我写的。但再次非常感谢:)
    猜你喜欢
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-15
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多