2015-04-21 40 views
0

我在Sitecore的MVC實現中專門爲行中的列名使用DynamicPlaceholder。例如,我可能在一個頁面上有3個50/50的渲染,每個渲染都有一個列一個佔位符和一個列二個佔位符。我正在使用的動態佔位符代碼完美地用於創建新頁面。但是現在我需要將來自不同節點的現有頁面遷移到我的新內容樹中。Sitecore DynamicPlaceholder:其中是否存儲用於渲染的guid?

我創建一個新的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

的GUID不單獨存儲,但作爲可以通過引用的rendering.Placeholder

這裏DefaultPlaceholderKey屬性中引用的佔位符關鍵的部分是一切好的帖子,你需要了解動態佔位符http://johnnewcombe.net/blog/sitecore-part-3

+0

您發送的鏈接讓我走上了正確的道路,但結果很簡單。我正在查找的ID是名爲UniqueId的渲染定義的屬性。 –