有谁知道如何从 Sitecore 项目中删除效果图?
我想删除所有子布局,以便可以用新的子布局替换它们。
我有试过这个但它似乎不起作用。该项目没有任何变化。
我似乎能够得到这样的效果图:
RenderingReference[] renderings = item.Visualization.GetRenderings(Sitecore.Context.Device, true);
但似乎没有办法设置它们。
我还可以得到这样的效果图(从上面的链接):
LayoutDefinition layoutDefinition = LayoutDefinition.Parse(LayoutField.GetFieldValue(item.Fields[Sitecore.FieldIDs.LayoutField]));
DeviceDefinition device = layoutDefinition.GetDevice(Sitecore.Context.Device.ID.ToString());
if (device.Layout != null) device.Layout = null;
if (device.Renderings != null) device.Renderings = new ArrayList();
但这又行不通。从layoutDefinition中清除设备并设置修改后的设备会导致此异常:No connection could be made because the target machine actively refused it
。我现在根本无法查看该项目!
我觉得我找错了树,有什么想法吗?
使用 Sitecore 6.4
更新回复:techphoria414
我尝试过的代码:
layoutDefinition.Devices.Clear();
layoutDefinition.Devices.Add(device);
我认为你的例外是无关的。要实际保存更改,您需要编辑该项目。确保您始终通过以下方式访问和更新该值LayoutField.Value
.
LayoutField layoutField = new LayoutField(item.Fields[Sitecore.FieldIDs.LayoutField]);
LayoutDefinition layout = LayoutDefinition.Parse(layoutField.Value);
//make your changes to the LayoutDefinition here
item.Editing.BeginEdit();
layoutField.Value = layout.ToXml();
item.Editing.EndEdit();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)