2011-07-19 34 views
5

我有以下代碼塊檢索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);           
     } 
    } 
} 

回答

8

您需要使用CMS.WorkflowEngine命名空間中的DeleteDocument方法。它確保所有相關對象都被刪除。

DocumentHelper.DeleteDocument(image,provider,true,true,true);

+0

謝謝你的工作。奇怪我的原始代碼不起作用,但我不使用任何Kentico工作流程? – Grimboify

+0

使用工作流方法可確保刪除所有依賴對象。我同意Treenode.Delete()方法應該按照您的預期工作,特別是當您使用重載方法且保留數據設置爲'false'時... –