如果内容节点有子节点,我想阻止内容节点被删除。我设置了一个像这样的事件处理程序:
public class KeepSafeEvents : ApplicationBase
{
public KeepSafeEvents()
{
Document.BeforeMoveToTrash += new Document.MoveToTrashEventHandler(Document_BeforeMoveToTrash);
}
void Document_BeforeMoveToTrash(Document sender, umbraco.cms.businesslogic.MoveToTrashEventArgs e)
{
if (sender.HasChildren)
{
e.Cancel = true;
}
}
}
但是,这似乎不起作用。我假设这是因为删除过程在处理父节点(然后没有子节点)之前首先将子节点移动到垃圾箱。有其他可能的解决方案吗?或者我在上面犯了一个简单的错误?
答案 0 :(得分:1)
这段代码非常适合我。您确定已将生成的.dll文件复制到Umbraco的/ bin文件夹吗?
我只是写了一个比你更短的内容,如下所示,但功能应该完全相同。
我注意到带有childnode 的文档似乎被删除(它从树中消失),但是当你重新加载树时,节点仍在那里。
public class KeepSafeEvents : ApplicationBase
{
public KeepSafeEvents()
{
Document.BeforeMoveToTrash += Document_BeforeMoveToTrash;
}
void Document_BeforeMoveToTrash(Document sender, MoveToTrashEventArgs e)
{
if (sender.HasChildren)
e.Cancel = true;
}
}