Sitecore 在codebehind中设置子布局的路径属性不会';行不通

Sitecore 在codebehind中设置子布局的路径属性不会';行不通,sitecore,sitecore6,Sitecore,Sitecore6,我有一个子布局,我想静态绑定在几个不同的布局中。因此,我不想在每个子布局实例的设计器中声明性地指定path属性。我真正想做的是创建一个常量文件(或配置文件),其中包含子布局的路径,然后在包含子布局的代码隐藏文件中使用该文件设置给定子布局的路径 但是,当我尝试在加载时的或初始化时的中设置路径属性时,子布局不会呈现到页面中。我错过什么了吗 例如: private void Page_Load(object sender, EventArgs e) { plBakingTips.Path = "

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

但是,当我尝试在加载时的
或初始化时的
中设置路径属性时,子布局不会呈现到页面中。我错过什么了吗

例如:

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

这正是你需要的。它允许您在代码隐藏中添加子布局


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

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

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

请参见此处的示例:
尝试在路径前面加上前缀~

Path = "~/layouts...";

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

为什么要像您所说的那样静态(我认为您的意思是动态)为后面的代码添加布局?您选择这种解决方案的原因是什么?Sitecore可以为您做到这一点。我认为这并不是这个问题的答案。此外,更改子布局的数据源与临时更改布局完全不同……更改数据源是使用此方法可以执行的一个示例。答案解释的主要内容是在代码中更改/插入布局,这是(我认为)用户的要求。。。