当前位置:  开发笔记 > 编程语言 > 正文

在Sitecore CMS.NET中递归删除子项

如何解决《在SitecoreCMS.NET中递归删除子项》经验,为你挑选了1个好方法。

我的Sitecore媒体库中有以下结构

图片/部门/子部门/产品/

我想一次删除部门代码中的所有图像.目前我有

Item[] items = database.SelectItems("/sitecore/media library/images/department1//*");            

Sitecore.Data.Engines.DataEngine engine = new Sitecore.Data.Engines.DataEngine(database);

using (new SecurityDisabler())
{
    foreach (Item item in items)
    {
        engine.DeleteItem(item))
    }
}

问题是它只删除了department1的子图像,而下面没有任何内容?



1> Alexey Rusak..:

DataEngine是一个非常低级的API,不应该没有理由使用它.

同时删除所有子项很容易:

Item department1 = database.GetItem("/ sitecore/media library/images/department1"); department1.DeleteChildren();

这将留下department1项,但其下的所有内容都将被删除.


我还建议在Visual Studio中使用Sitecore Rocks扩展.您可以直接在VS中查看内容树,并通过右键单击内容树中的任意位置并选择查询分析器来执行"命令".本案例中使用的是:从/ sitecore/media library/images/department1/*中删除您也可以使用Item属性,例如[@@ templateid =""]等.祝您好运.
推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有