gpt4 book ai didi

sitecore - 在 SiteCore 中以编程方式将布局项关联到项节点

转载 作者:行者123 更新时间:2023-11-30 23:47:09 31 4
gpt4 key购买 nike

我正在使用 xls 中的数据以编程方式创建内容树项目节点。我在将布局关联到项目节点时遇到问题。我无法为我可以使用的项目识别任何 setter 方法。我想过使用 Item.Visualization 属性,但没有帮助。
请有人就如何以编程方式将布局项与项节点相关联的示例代码提供建议或帮助。

最佳答案

我理解你为什么觉得这很难,因为它不是很直观。我已经制作了一些关于如何做到这一点的示例代码,稍后可能会写一篇关于它的博客文章。直到那时这里是示例代码:

   using(new SecurityDisabler())
{
Database masterDatabase = Database.GetDatabase("master");
ID sampleLayoutId = new ID("{14030E9F-CE92-49C6-AD87-7D49B50E42EA}");
ID defaultDeviceId = new ID("{FE5D7FDF-89C0-4D99-9AA3-B5FBD009C9F3}");
ID sampleItemId = new ID("{2E4C98CF-DD72-4B55-9DF6-2F6691A6690B}");
ID sampleRenderingId = new ID("{493B3A83-0FA7-4484-8FC9-4680991CF743}");

Item sampleItem = masterDatabase.GetItem(sampleItemId);


Item layoutItem = masterDatabase.GetItem(sampleLayoutId);


LayoutDefinition layoutDefinition = new LayoutDefinition();
layoutDefinition.LoadXml(sampleItem["__Renderings"]);
DeviceDefinition deviceDefinition = layoutDefinition.GetDevice(defaultDeviceId.ToString());
deviceDefinition.ID = defaultDeviceId.ToString();
deviceDefinition.Layout = sampleLayoutId.ToString();
RenderingDefinition renderingDefinition = new RenderingDefinition();
renderingDefinition.ItemID = sampleRenderingId.ToString();
deviceDefinition.AddRendering(renderingDefinition);


sampleItem.Editing.BeginEdit();
sampleItem["__Renderings"] = layoutDefinition.ToXml();
sampleItem.Editing.EndEdit();
}

我希望你能从中理解,否则当我有时间写博客文章时,它会更具解释性。

关于sitecore - 在 SiteCore 中以编程方式将布局项关联到项节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6605841/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com