我有一个下拉数据类型,它包含父节点的所有子节点。我可以手动创建此列表。但问题是,子节点将在运行中创建/删除,这意味着每次都需要手动编辑/删除下拉值。
有没有办法在我的父节点发布时从下拉列表中添加/删除项目?
请告诉我。
答案 0 :(得分:0)
假设您使用的是最新版本的Umbraco,您可以在文档发布上注册一个事件,该事件将针对每个事件发布进行触发。在事件处理程序代码中,您可以选择仅针对您关注的节点触发。
http://our.umbraco.org/documentation/Reference/Events/application-startup
以下内容应该这样做
using Umbraco.Core;
using umbraco.BusinessLogic;
using umbraco.cms.businesslogic;
using umbraco.cms.businesslogic.web;
namespace Umbraco.Extensions.EventHandlers
{
public class RegisterEvents : ApplicationEventHandler
{
protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
{
Document.BeforePublish += Document_BeforePublish;
}
private void Document_BeforePublish(Document sender, PublishEventArgs e)
{
//Do what you need to do. In this case logging to the Umbraco log
Log.Add(LogTypes.Debug, sender.Id, "the document " + sender.Text + " is about to be published");
if (sender.Id == YourIDAsAConstantOrConfigurableValue)
{
//Do your list building here
}
//cancel the publishing if you want.
e.Cancel = true;
}
}
}
您可以根据ID或基于文档类型别名
有选择地触发特定父节点希望有所帮助