C# 使用jsTree,如果选择/突出显示现有父级,如何将新项添加到该父级的子组中?

C# 使用jsTree,如果选择/突出显示现有父级,如何将新项添加到该父级的子组中?,c#,jquery,asp.net-core,user-interface,jstree,C#,Jquery,Asp.net Core,User Interface,Jstree,$(函数(){ @{ var rootGroup=Model.Groups.FirstOrDefault(group=>group.ParentGroupId==null); } 让selectedGroup=“”; 让selectedNode=null; 设群={}; @foreach(Model.Groups中的var组){ @:groups[“@group.GroupId”]={删除:false,id:@group.GroupId,父项:@group.ParentGroupId,名称:@g


$(函数(){
@{
var rootGroup=Model.Groups.FirstOrDefault(group=>group.ParentGroupId==null);
}
让selectedGroup=“”;
让selectedNode=null;
设群={};
@foreach(Model.Groups中的var组){
@:groups[“@group.GroupId”]={删除:false,id:@group.GroupId,父项:@group.ParentGroupId,名称:@group.Title,顺序:@group.OrderNum”};
}
$('#groupTree').jstree({
“复选框”:{“三状态”:false},
“核心”:{
“check_callback”:true,
“数据”:[
@foreach(Model.Groups中的var项){
@if(item.ParentGroupId==null)
{
@:{“id”:“@item.GroupId”,“父项”:“#”,“文本”:“@item.Title”,“状态”:{“disabled”:true},
}
其他的
{
@:{“id”:“@item.GroupId”,“父项”:“@item.ParentGroupId”,“文本”:“@item.Title”},
}
}
],
“主题”:{
“图标”:错误
},
},
“插件”:[“主题”,“dnd”]
}).on('loaded.jstree',函数(){
$(“#groupTree”).jstree(“全部打开”);
}).on(“select_node.jstree”,函数(evt,数据){
$(“#组名称输入”).val(组[data.node.id].name);
selectedGroup=data.node.id;
selectedNode=data.node;
$(“#组名输入”).prop('disabled',false);
$(“#保存组按钮”).prop('disabled',false);
$(“#删除组按钮”).prop('disabled',false);
}).on(“move_node.jstree”,函数(evt,数据){
组[data.node.id].parent=data.parent;
组[data.node.id]。顺序=data.position;
$(“#SerializedGroupInformation”).val(JSON.stringify(groups));
})
$(“#保存组按钮”)。单击(函数(){
如果(selectedGroup!=“”){
组[selectedGroup]。名称=$(“#组名称输入”).val();
$(“#组树”).jstree('rename#node',selectedNode,$(“#组名输入”).val();
$(“#SerializedGroupInformation”).val(JSON.stringify(groups));
$(“#组名输入”).prop('disabled',true);
$(“#保存组按钮”).prop('disabled',true);
$(“#删除组按钮”).prop('disabled',true);
$(“#组名输入”).val(“”);
}
})
$(“#删除组按钮”)。单击(函数(){
如果(selectedNode.children.length>0){
游泳({
标题:“错误!”,
文本:“该组不能有任何子项。”,
图标:“错误”
});
返回;
}
组[selectedGroup].delete=true;
$(“#groupTree”).jstree('delete#node',selectedNode);
$(“#SerializedGroupInformation”).val(JSON.stringify(groups));
$(“#组名输入”).prop('disabled',true);
$(“#保存组按钮”).prop('disabled',true);
$(“#删除组按钮”).prop('disabled',true);
$(“#组名输入”).val(“”);
})
$(“#新建组按钮”)。单击(函数(){
var name=$(“#新组输入”).val();
变量组={name:name,顺序:“0”,id:,父项:}
var节点={id:name,text:name};
$('#groupTree').jstree('create#node',“@rootGroup.GroupId',node',last');
组[名称]=组;
$(“#SerializedGroupInformation”).val(JSON.stringify(groups));
$(“#组名输入”).prop('disabled',true);
$(“#保存组按钮”).prop('disabled',true);
$(“#删除组按钮”).prop('disabled',true);
$(“#组名输入”).val(“”);
$(“#新组输入”).val(“”);
})
});

下面是一个演示,演示如何将新项目添加到选定的父项: 视图:


创建按钮
Js代码:

@section scripts{
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/jstree.min.js"></script>
    <script type="text/javascript">
        $(function () {
            var managerTeam = [{
            "id": "m1",
            "text": "M1",
            "children": [{
                "id": "m2",
                "parent": "m1",
                "text": "M2"
            }, {
                "id": "t1",
                "parent": "m1",
                "text": "T1"
            }, {
                "id": "m3",
                "parent": "m1",
                "text": "M3",
                "children": [{
                    "id": "t2",
                    "parent": "m3",
                    "text": "T2"
                }, {
                    "id": "t3",
                    "parent": "m3",
                    "text": "T3"
                }],
                "state": { "opened": true }
            }],
            "state": { "opened": true }
        }];

           
            $('#create').on('click', function () {
                
                var position = 'inside';
                var newNode = { state: "open", data: "New nooooode!" };
                var parent = $('#jstree').jstree('get_selected')[0];
                $('#jstree')
                    .jstree({
                        "core": {
                            "check_callback": true
                        }
                    })
                    .create_node(parent, newNode, position, false, false); 
            });
        });
       
    </script>
}
@节脚本{
$(函数(){
var managerTeam=[{
“id”:“m1”,
“文本”:“M1”,
“儿童”:[{
“id”:“m2”,
“父项”:“m1”,
“文本”:“M2”
}, {
“id”:“t1”,
“父项”:“m1”,
“文本”:“T1”
}, {
“id”:“m3”,
“父项”:“m1”,
“文本”:“M3”,
“儿童”:[{
“id”:“t2”,
“父项”:“m3”,
“文本”:“T2”
}, {
“id”:“t3”,
“父项”:“m3”,
“文本”:“T3”
}],
“state”:{“opened”:true}
}],
“state”:{“opened”:true}
}];
$('#create')。在('click',函数(){
变量位置='内部';
var newNode={state:“open”,data:“newnoooode!”};
var parent=$('#jstree').jstree('get#u selected')[0];
$(“#jstree”)
jstree先生({
“核心”:{
“检查回调”:true
}
})
@section scripts{
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/jstree.min.js"></script>
    <script type="text/javascript">
        $(function () {
            var managerTeam = [{
            "id": "m1",
            "text": "M1",
            "children": [{
                "id": "m2",
                "parent": "m1",
                "text": "M2"
            }, {
                "id": "t1",
                "parent": "m1",
                "text": "T1"
            }, {
                "id": "m3",
                "parent": "m1",
                "text": "M3",
                "children": [{
                    "id": "t2",
                    "parent": "m3",
                    "text": "T2"
                }, {
                    "id": "t3",
                    "parent": "m3",
                    "text": "T3"
                }],
                "state": { "opened": true }
            }],
            "state": { "opened": true }
        }];

           
            $('#create').on('click', function () {
                
                var position = 'inside';
                var newNode = { state: "open", data: "New nooooode!" };
                var parent = $('#jstree').jstree('get_selected')[0];
                $('#jstree')
                    .jstree({
                        "core": {
                            "check_callback": true
                        }
                    })
                    .create_node(parent, newNode, position, false, false); 
            });
        });
       
    </script>
}