2011-07-19 19 views
5

Kentico'da bir belge düğümü alan ve silen aşağıdaki kod bloğum var. Bu, kentico düğümünü siler, ancak datada kalan temel belge türünü silmez. Yardım et?!Kentico TreeNode Bağımlılıkları silmeden yöntemi sil

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

cevap

8

CMS.WorkflowEngine ad alanından DeleteDocument yöntemini kullanmanız gerekir. Tüm bağımlı nesnelerin silinmesini sağlar.

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

+0

Çalıştığınız için teşekkürler. Orijinal kodum işe yaramadı mı, yine de hiçbir Kentico iş akışını kullanmıyorum? – Grimboify

+0

İş akışı yöntemini kullanmak, TÜM bağımlı nesnelerin silinmesini sağlar. Treenode.Delete() yönteminin beklediğiniz gibi çalışacağını, özellikle de veriyi 'yanlış' olarak ayarlanmış veriyi koruyarak aşırı yüklenmiş yöntemi kullandığınız için ... –