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>
}