3
在Sitecore 8.0項目上我目前正在嘗試以編程方式更新RenderingReference的數據源。 由於之前的決定,渲染的數據源不是基於Id,而是基於路徑。Sitecore更新渲染引用
使用以下代碼獲取渲染引用,並在方法內正確更新數據源。但這些更改從未保存到數據庫中。
有什麼我做錯了嗎?還是我想做一些不可能的事情?
page.Editing.BeginEdit();
var renderings = page.Visualization.GetRenderings(Sitecore.Context.Device, true);
foreach (var rendering in renderings)
{
rendering.Settings.DataSource = "A New DataSource";
}
page.Editing.EndEdit();
非常感謝您的回答。我結束了包含0渲染的DeviceDefinition。這似乎是由於Sitecore 8.0具有共享佈局和最終佈局。通過將新的LayoutField的參數更改爲[Sitecore.FieldIds.FinalLayoutField],我得到了正確的效果圖。 – Thomas
完美!很高興幫助你。 –