在后面的代码中设置子布局的Path属性不起作用

时间:2012-08-03 07:26:30

标签: sitecore sitecore6

我有一个子布局,我想在几个不同的布局中静态绑定。因此,我不想在子布局的每个实例上以声明方式指定设计器中的path属性。我真正想做的是有一个常量文件(或配置文件),其中包含子布局的路径,然后我使用它在包含子布局的代码隐藏文件中设置路径f给定的子布局。

但是,当我尝试在on_loadon_init中设置路径属性时,子布局不会呈现给页面。我错过了什么吗?

示例:

private void Page_Load(object sender, EventArgs e) {
   plBakingTips.Path = "/layouts/User Defined/Sublayouts/Products/Product List/Product/Product Bake It Yours.ascx";
}

3 个答案:

答案 0 :(得分:1)

Sitecore默认设置PreInit中的所有页面控件。您可以更改此设置,但这是一个全局设置,我不确定是否建议您更改它。

但是,您可以覆盖的“工厂”构建子布局,这可能允许您执行此操作。实现自定义SublayoutRenderingType并覆盖web.config中的Sitecore默认值。

在此处查看示例: http://sitecoreblog.alexshyba.com/2011/08/sitecore-output-caching-kick-it-up.html?m=1

答案 1 :(得分:1)

尝试使用〜

为路径添加前缀
Path = "~/layouts...";

另外,这是一个文件系统路径,而不是子布局项目路径(我提到这个,因为你的路径看起来像一个项目路径)

答案 2 :(得分:0)

这应该是您所需要的。它允许您在

后面的代码中添加子布局

Temporarily change a Sitecore item's layout

我过去常常更改子布局的数据源,但效果很好。