Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Disable Multiple Selection in JSTree is not working

I am using JSTree in my application with following code.

this.CreateTreeView = function () {
    $('#jstree_demo_div').jstree({
        'core': {
            'multiple': false,
            'data': [
               { "id": "ajson1", "parent": "#", "text": "Simple root node" },
               { "id": "ajson2", "parent": "#", "text": "Root node 2" },
               { "id": "ajson3", "parent": "ajson2", "text": "Child 1" },
               { "id": "ajson4", "parent": "ajson2", "text": "Child 2" },
            ]
        }
    });
}

As shown in my code i am trying to disable multiple selection.

Now when i use following code to select node.

$("#jstree_demo_div").jstree().select_node("ajson3");
$("#jstree_demo_div").jstree().select_node("ajson4");

Still it select both node. So it becomes like multiple selection from Javascript.

I am putting this question just to confirm that is it correct working of JSTree?

I know that i can deselect all node before selecting any node using deselect_all function.

But according to me if multiple selection is set to false then selecting node from javascript also should select only one node.

Please correct me if i am wrong.

like image 413
Nirav Kamani Avatar asked Sep 03 '15 11:09

Nirav Kamani


3 Answers

just use this configuration

this.CreateTreeView = function () {

    **"plugins" : [
                "checkbox",  
            ],**  

    $('#jstree_demo_div').jstree({
        'core': {
            **'multiple': false,**
            'data': [
               { "id": "ajson1", "parent": "#", "text": "Simple root node" },
               { "id": "ajson2", "parent": "#", "text": "Root node 2" },
               { "id": "ajson3", "parent": "ajson2", "text": "Child 1" },
               { "id": "ajson4", "parent": "ajson2", "text": "Child 2" },
            ]
        },

        **'checkbox' : {            
            'deselect_all': true,
             'three_state' : false, 
        }**

    }); }
like image 130
اسماعیل زارع Avatar answered Oct 13 '22 21:10

اسماعیل زارع


select_node will select a node regardless of the multiple setting.

The setting only limits user interaction, select_node is a lower level method and will not be limited, so you (the developer) can modify the selection programmatically without limitation.

If you want to use the same function that is triggered by user interaction (and is therefore limited by multiple) use activate_node.

like image 16
vakata Avatar answered Oct 13 '22 22:10

vakata


'checkbox' : {            
 'deselect_all': true,
 'three_state' : false, 
}

works fine!

like image 1
WEBGONDEL UG Avatar answered Oct 13 '22 21:10

WEBGONDEL UG