Sitecore如何使用插入规则

Sitecore如何使用插入规则,sitecore,Sitecore,我想在其子项中获取父值 父项和子项使用相同的模板(我的意思是它是相同的标准值),如果父项更新内容中的字段值(而不是_标准值),子项中的相同字段也会更改 我不知道是否可以在Sitecore中使用“插入规则”。 我可以知道如何使用“插入规则”吗?您可以在保存父项时更新子项。此处介绍了用于挂接父项保存的一些选项: 要更新子项,您需要执行以下操作: foreach (var child in parent.GetChildren()) { child.Editing.BeginEdit();

我想在其子项中获取父值

父项和子项使用相同的模板(我的意思是它是相同的标准值),如果父项更新内容中的字段值(而不是_标准值),子项中的相同字段也会更改

我不知道是否可以在Sitecore中使用“插入规则”。
我可以知道如何使用“插入规则”吗?

您可以在保存父项时更新子项。此处介绍了用于挂接父项保存的一些选项:

要更新子项,您需要执行以下操作:

foreach (var child in parent.GetChildren())
{
    child.Editing.BeginEdit();
    child.Fields["My Field"].Value = parent.Fields["My Field"].Value;
    child.Editing.EndEdit();
}

我不确定这是否是使用插入规则的最佳位置

但是,您可以使用
item:created
事件:


公共类updateFeldEventHandler
{
已创建公共void(对象发送方、事件args args)
{
使用(新的SecurityDisabler())
{
ItemCreatedEventArgs arg=Event.ExtractParameter(args,0)作为ItemCreatedEventArgs;
如果(arg!=null&&arg.Item.TemplateName==“您的模板”
&&arg.Item.Parent.TemplateName==“您的模板”)
{
arg.Item.Editing.BeginEdit();
arg.Item[“您的字段名”]=arg.Item.Parent[“您的字段名”];
arg.Item.Editing.EndEdit();
}
}
}
}

代码没有经过测试,但在最坏的情况下,它应该为您指明正确的方向。

保存时,您将知道当前项,并且可以检查是否存在相同模板的子项,如果存在,则在此时更新这些子项


我不确定您当时是否需要知道父项,但如果需要,您可以对正在保存的当前项执行item.parent

已确认ItemCreated正在工作,但ItemSaved未工作。我需要更多的代码吗?我通过定义Item对象而不是“ItemCreatedEventArgs”解决了这个问题。我能知道如何在“foreach”之前定义“parent”对象吗?我想在父项保存后更新所有子项。