2011-07-19 6 views
5

私は、kenticoでドキュメントノードを取得して削除する次のコードブロックを持っています。これはkenticoノードを削除しますが、dataseに残っている基本文書タイプは削除しません。助けて?!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'に設定している場合は、... –