C# Linq查询以删除剑道树视图上的子节点或选定节点
我有一个树状视图显示所有节点 P .P1 .P2 .P3 B .B1 .B2 .B21 .B22 .B221 .B222 .B3 C .C1 .C2 等等。目前,如果我尝试删除B,它会和前端的孩子一起被删除。但是如果我在数据库中看到只有B被删除,并且有孩子。下面是我用来删除父项的查询。有谁能建议我如何删除子节点,方法是获取所有节点的列表,检查是否有子节点,然后删除。需要尽快提供帮助C# Linq查询以删除剑道树视图上的子节点或选定节点,c#,linq,treeview,C#,Linq,Treeview,我有一个树状视图显示所有节点 P .P1 .P2 .P3 B .B1 .B2 .B21 .B22 .B221 .B222 .B3 C .C1 .C2 等等。目前,如果我尝试删除B,它会和前端的孩子一起被删除。但是如果我在数据库中看到只有B被删除,并且有孩子。下面是我用来删除父项的查询。有谁能建议我如何删除子节点,方法是获取所有节点的列表,检查是否有子节点,然后删除。需要尽快提供帮助 [WebMethod] [ScriptMethod(ResponseFormat = ResponseF
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public String removeTree(int id)
{
try
{
using (var context = new Data.Entities())
{
var delNode = context.Tree.Where(c => c.ID == id).First();
if (delNode != null)
{
context.Tree.Remove(delNode);
context.SaveChanges();
}
else
{
result.ReturnResult = false;
result.ReturnMessage = "Cannot delete.";
}
}
}
catch (Exception exc)
{
result.ReturnResult = false;
result.ReturnMessage = exc.Message;
}
JavaScriptSerializer JSON = new JavaScriptSerializer();
return JSON.Serialize(result);
}
剑道树景:
function treeView() {
var treeMenu = new kendo.data.HierarchicalDataSource({
template: kendo.template($("#treeview-template").html()),
schema: {
data: function (response) {
return JSON.parse(response.d);
},
schema: {
model: {
hasChildren: true,
id: "id",
children: "HasChildren",
hasChildren: "HasChildren",
fields: {
ID: { editable: false, nullable: false, type: "string" },
LINK: { editable: true, nullable: true, type: "string" },
},
}
}
},
transport: {
read: {
url: "/getTest",
contentType: "application/json; charset=utf-8",
type: "POST",
datatype: "json",
},
destroy: {
url: "/Services/Services.asmx/removeTree",
contentType: "application/json; charset=utf-8",
type: "POST",
datatype: "json",
data: { "id": deleteId }
},
parameterMap: function (data, type) {
if ((type == "read") || (type == "update") || (type == "create") || (type == "destroy")) {
return JSON.stringify(data);
} else {
return data;
}
}
}
});
$("#treeview").kendoTreeView({
dataSource: treeMenu,
loadOnDemand: false,
expanded: true,
dataValueField: "id",
dataTextField: ['LINK'],
template: kendo.template($("#treeview-template").html()),
}).data("kendoTreeView");}
谢谢您应该在
树
表中设置从子级到父级的外键引用,以进行级联删除。我正在尝试基于所选节点使用Web服务执行删除操作。您可以显示树
表的当前定义吗?使用我的kendo treeview表更新结构我是指数据库中的表。context
不是使用EF连接到数据库的DbContext
吗?