Umbraco:在父节点发布时自动刷新下拉数据类型项

时间:2014-01-09 11:18:33

标签: umbraco dropdownbox

我有一个下拉数据类型,它包含父节点的所有子节点。我可以手动创建此列表。但问题是,子节点将在运行中创建/删除,这意味着每次都需要手动编辑/删除下拉值。

有没有办法在我的父节点发布时从下拉列表中添加/删除项目?

请告诉我。

1 个答案:

答案 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或基于文档类型别名

有选择地触发特定父节点

希望有所帮助