Sitecore DynamicPlaceholder:为渲染存储的guids在哪里?

时间:2015-04-21 23:49:39

标签: model-view-controller sitecore

我在Sitecore的MVC实现中专门针对行中的列名使用DynamicPlaceholders。例如,我可能在页面上有3个50/50渲染,每个渲染都有一个列占位符和一个二列占位符。我正在使用的动态占位符代码非常适合创建新页面。但现在我需要将现有页面从不同的节点迁移到我的新内容树中。

我创建了一个新的RenderingDefinition项目,如下所示:

RenderingDefinition ren = new RenderingDefinition();
ren.Placeholder = "content/50-50";
ren.Datasource = [Datasource GUID];
ren.ItemID = [Rendering GUID];
device.AddRendering(ren);

然后我需要为该渲染的每一列添加一些内容项,以及我遇到问题的地方。不知何故,Sitecore使用我创建的上述渲染存储GUID。如果您在PageEditor模式下检查占位符,您可以看到" referenceId"在与此对应的标记中。但我无法弄清楚它的存储位置,所以我可以将它传递给下面的代码:

RenderingDefinition col = new RenderingDefinition();
col.Placeholder = "content/50-50/column-one_[50/50 rendering placeholder guid]";
col.Datasource = [Datasource GUID];
col.ItemID = [Rendering GUID];
device.AddRendering(col);

它绝对不是RenderingDefintion的属性,也不是渲染ID。

1 个答案:

答案 0 :(得分:1)

Guids不是单独存储的,而是作为占位符键的一部分存储,可以通过引用rendering.Placeholder

的DefaultPlaceholderKey属性来引用它。

以下是关于动态占位符http://johnnewcombe.net/blog/sitecore-part-3

需要了解的所有内容的好文章
相关问题