0

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

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

例子:

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

3 回答 3

1

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

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

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

于 2012-08-03T12:21:31.393 回答
1

尝试在路径前加上 ~

Path = "~/layouts...";

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

于 2012-08-03T19:52:55.463 回答
0

这应该正是您所需要的。它允许您在后面的代码中添加子布局

临时更改 Sitecore 项目的布局

我曾经更改过子布局的数据源,并且效果很好。

于 2012-08-03T07:56:32.633 回答