JsTree один узел с двумя родителями - PullRequest
0 голосов
/ 12 мая 2018

Я показываю jstree в пользовательском интерфейсе и заполняю его json из кода на стороне сервера asp.net, это работает хорошо, но когда у меня есть один узел с двумя родителями, он не работает хорошо.Могу ли я показать Jstree, который имеет один узел с двумя родителями?когда я делаю это, я получаю ошибку шоу.его перерезать ребенка между двумя родителями!Я знаю, что это не роль дерева, но мне это нужно.

    $(function () {

        $('#jstree').jstree({
            'core': {
                "animation": 0,
                "check_callback": true,
                "themes": { "stripes": true },
                'data': {
                    'url': '/Products/ProductCategoryStructure/GetData',
                    'data': function (node) {
                        return { 'id': node.id };
                    }
                }
            },
            "types": {
                "#": {
                    "max_children": 1,
                    "max_depth": 4,
                    "valid_children": ["root"]
                },
                "default": {
                    "valid_children": ["default", "file"]
                },
                "file": {
                    "icon": "glyphicon glyphicon-file",
                    "valid_children": []
                }
            },
             plugins: ["contextmenu"], contextmenu: {items: customMenu}
        });


        $('#jstree').on('changed.jstree', function (e, data) {
            var i, j, r = [];
            for (i = 0, j = data.selected.length; i < j; i++) {
                r.push(data.instance.get_node(data.selected[i]).text);
            }
            //alert('Selected: ' + r.join(', '));
            // $('#event_result').html('Selected: ' + r.join(', '));
        }).jstree();
    });

Это код на стороне сервера

        [HttpGet]
        public ActionResult GetData()
        {
            var ListProductCategoryStructure = _service.GetAll();
            var nodes = new List<JsTreeModel>();
            //nodes.Add(new JsTreeModel() { id = "58", parent = "#", text = " مادیران مال",opened=true,icon="/assets/pages/img/mlgo.png" });
            nodes.Add(new JsTreeModel() { id = "1", parent = "#", text = " مادیران مال", opened = true, icon = "/assets/pages/img/mlgo.png" });
            foreach (var item in ListProductCategoryStructure)
            {
                nodes.Add(new JsTreeModel() { id = item.ProductCategoryId.ToString(), parent = (item.ProductParentCategoryId==65?"#": item.ProductParentCategoryId.ToString()), text = item.ProductParentCategoryTitle,icon="false" });
            }
            
            return Json(nodes, JsonRequestBehavior.AllowGet);
        }
и его результат enter image description here

1 Ответ

0 голосов
/ 12 мая 2018

Один узел может иметь только одного родителя.

...