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
完美!很高兴帮助你。 –