Kentico TreeNode删除方法不删除依赖项
问题描述:
我有以下代码块检索kentico中的文档节点并删除它。它确实会删除kentico节点,但不会删除保留在数据中的基础文档类型。帮帮我?!Kentico TreeNode删除方法不删除依赖项
CMS.TreeEngine.TreeProvider provider = new CMS.TreeEngine.TreeProvider(CMS.CMSHelper.CMSContext.CurrentUser);
CMS.TreeEngine.TreeNode image = provider.SelectSingleNode(new Guid(imageID), "en-US", CMS.CMSHelper.CMSContext.CurrentSite.SiteName);
if (image != null)
{
CMS.TreeEngine.TreeNode school = provider.SelectSingleNode(image.Parent.NodeID, "en-US", true, true);
if (school != null)
{
string CMSUserID = school.GetValue("CMSUserID").ToString();
if (CMSUserID == ui.UserID.ToString())
{
image.Delete(false);
}
}
}
答
您需要使用CMS.WorkflowEngine命名空间中的DeleteDocument方法。它确保所有相关对象都被删除。
DocumentHelper.DeleteDocument(image,provider,true,true,true);
谢谢你的工作。奇怪我的原始代码不起作用,但我不使用任何Kentico工作流程? – Grimboify
使用工作流方法可确保删除所有依赖对象。我同意Treenode.Delete()方法应该按照您的预期工作,特别是当您使用重载方法且保留数据设置为'false'时... –