有谁知道如何从Sitecore项目中删除渲染?以编程方式删除Sitecore中的子布局
我想删除所有的子布局,所以我可以用新的集合替换它们。 我有tried this,但它似乎没有工作。该项目没有任何变化。
我似乎能够得到的效果是这样的:
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
UPDATE回复:techphoria414
代码我想:
layoutDefinition.Devices.Clear();
layoutDefinition.Devices.Add(device);
你能提供你正在使用的代码来保存更改回现场,以及异常的完整堆栈跟踪吗? – techphoria414 2012-03-07 16:22:31
更新了我的问题。 – Jon 2012-03-07 16:34:29