Sitecore个性化设置不起作用
我为Sitecore的DMS功能创建了一个简单的演示站点。 在sitecore内容中,我创建了以下结构: 主页Sitecore个性化设置不起作用,sitecore,sitecore-dms,Sitecore,Sitecore Dms,我为Sitecore的DMS功能创建了一个简单的演示站点。 在sitecore内容中,我创建了以下结构: 主页 |-个性化 ..|-HomeView1 ..|-家庭视图2 HomeView1、HomeView2和Home具有相同的模板,其中仅包含一个字段:显示文本 现在我为主页创建个性化设置,为它设置规则。 规则是当前月份为8月,并将个性化内容指向HomeView1。 预览时,内容不会更改为HomeView1的文本。 以下是我的源代码: 公共部分类主页:System.Web.UI.UserCon
|-个性化
..|-HomeView1
..|-家庭视图2 HomeView1、HomeView2和Home具有相同的模板,其中仅包含一个
字段:显示文本
现在我为主页创建个性化设置,为它设置规则。
规则是当前月份为8月,并将个性化内容指向HomeView1。
预览时,内容不会更改为HomeView1的文本。
以下是我的源代码:
公共部分类主页:System.Web.UI.UserControl
{
受保护物品;
受保护的无效页面加载(对象发送方、事件参数e)
{
currentItem=Sitecore.Context.Item;
}
}
这就是我在主页上绑定的内容
我想知道为什么应用个性化规则时,Sitecore.Context.Item
不会返回正确的项目(HomeView2)
请给我一些建议。提前感谢。当您进行个性化设置时,上下文项不会更改,子布局的数据源会更改。因此,您应该将
currentItem
设置为数据源
以下是获取我从中复制/粘贴的数据源的一些常见代码:
var sublayout=this.Parent作为Sitecore.Web.UI.WebControls.sublayout;
if(子布局!=null)
{
Guid数据源ID;
Sitecore.Data.Items.Item数据源;
if(Guid.TryParse(sublayout.DataSource,out dataSourceId))
{
dataSource=Sitecore.Context.Database.GetItem(新ID(dataSourceId));
}
其他的
{
dataSource=Sitecore.Context.Database.GetItem(sublayout.dataSource);
}
}
其他几点:
- 一般来说,最好的做法是
- 您的页面项目(主页)不需要是 同一模板具有数据源项李>
- 我不认为个性化 可以在预览模式下工作,但可以在编辑模式下进行检查