4
我編程方式創建以XLS使用的數據內容樹項目節點。我在將佈局關聯到項目節點時遇到了問題。我無法確定任何可以使用的項目的設置方法。我想過使用Item.Visualization屬性,但它沒有幫助。 請某人建議或如何佈局項目關聯到編程的項目節點的樣本代碼幫助。關聯佈局項目的項目節點編程在Sitecore的
我編程方式創建以XLS使用的數據內容樹項目節點。我在將佈局關聯到項目節點時遇到了問題。我無法確定任何可以使用的項目的設置方法。我想過使用Item.Visualization屬性,但它沒有幫助。 請某人建議或如何佈局項目關聯到編程的項目節點的樣本代碼幫助。關聯佈局項目的項目節點編程在Sitecore的
我理解你爲什麼發現這種努力,因爲它不是很直觀。我已經做了一些關於如何做的示例代碼,稍後可能會寫一篇關於它的博客文章。到那時這裏是示例代碼:
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();
}
我希望你可以從任何意義,否則它會更說明,當我得到的時間來寫博客文章。
等待您的博客後,我很好奇:)。 – Younes
您好Jens,感謝您的完美工作代碼。註釋掉//layoutDefinition.LoadXml(sampleItem["__Renderings「])行;因爲我沒有任何佔位符和渲染相關聯。再次感謝你的幫助。 –
+1這是非常有幫助的 – marto