将项目添加到存储桶后,如何修改分支的子项?

时间:2015-11-10 16:03:53

标签: sitecore sitecore8 sitecore7.2

我已经定义了使用相同层次但布局不同的分支数量。 我正在从外部源导入数据并以编程方式在存储桶中创建项目。我根据一些逻辑获得了对正确分支的引用,并使用以下代码创建并将分支项添加到我的存储桶中:

BranchItem branch = News.GetNewsBranchItem(item.Genre);
if (branch == null)
{
   Sitecore.Diagnostics.Log.Error(string.Format("Missing branch for {} genre!", item.Genre), this);
   Sitecore.Diagnostics.Log.Error(string.Format("Failed to import import item id: {0}", item.Id.ToString()), this);
   return;
}
Item newlyCreatedBranch = parent.Add(ItemUtil.ProposeValidItemName(item.Title), branch);

然后我想访问分支第一个孩子,这实际上是我要填写数据的新闻项目并完成动作:

Item newsItem = newlyCreatedBranch.Children[0];
newsItem.Editing.BeginEdit();
newsItem[SCG.BasePage2.FieldIds.MetaKeywords] = item.Keywords;
.
.
.
newsItem.Editing.EndEdit();

在流程成功完成后,我会检查新创建的项目,并惊讶地发现我缺少内容?!

我很惊讶,因为之前我正在访问并填充我的分支子节点

parent.Add(ItemUtil.ProposeValidItemName(item.Title), branch);

并注意到新闻项目已正确填写...... 任何帮助表示赞赏

1 个答案:

答案 0 :(得分:0)

在漫长的一天之后已经很晚了,因此我在上面发布了愚蠢的问题。 好吧,遵循代码返回新闻项而不是分支项:

Swift

一旦我考虑了退回的项目,我想解决问题的项目就解决了。 评论代码不是必需的:

Item newlyCreatedBranch = parent.Add(ItemUtil.ProposeValidItemName(item.Title), branch);