我已经为sitecore Item创建了一个自定义字段,此自定义字段只是创建一个名称在某个特定文件夹下指定的新项目。我在保存时这样做(onLoad方法中的适当条件用于自定义字段控制):
if (!Sitecore.Context.ClientPage.IsEvent)
{
//blah-blah-blah
}
else
{
TemplateItem template = db.GetTemplate(TemplatePath);
Item parentItem = db.Items[ItemsRootPath];
var newItem = parentItem.Add("item name", template);
}
项目正在成功创建,但是当我保存父项目(包含此自定义字段的项目)时,内容编辑器会自动打开此项目。
问题是:如何避免它并在后台创建此项目而不将其显示给用户?
谢谢, 甲
答案 0 :(得分:1)
您可以禁用通知,以防止新项目被加载:
Client.Site.Notifications.Disabled = true;
TemplateItem template = db.GetTemplate(TemplatePath);
Item parentItem = db.Items[ItemsRootPath];
var newItem = parentItem.Add("item name", template);
Client.Site.Notifications.Disabled = false;
我通过在我保存的项目中添加一个子项来测试这个,导致树也没有更新。我通过在通知启用后添加此行来修复此问题。
Sitecore.Context.ClientPage.SendMessage(this, string.Format("item:refreshchildren(id={0})", ItemID));