如何按设备更改控件的占位符?

时间:2013-09-18 07:14:48

标签: sitecore sitecore7

使用Sitecore 7 - 有没有办法可以指定模板控件的占位符基于设备?

示例:Placeholder A if the device is Mobile else Placeholder B

这更多地与在移动设备中以不同于桌面网站的方式定位内容有关。

更新

Trayek的answer很棒,确实很有效。虽然,我最终采用了不同的方法。

在我的模板的布局细节中,我添加了一个控件C;将其占位符设置为A,并在其他“参数”部分中添加 HideBydevice 桌面 。然后,我再次添加了控件C;将其占位符设置为B,并在其他参数部分添加 HideBydevice 移动

然后在我的代码中,如果参数的值与 Sitecore.Context.Device.Name <相同,则检查 HideBydevice 参数的值并隐藏子布局/控件/ p>

这对我有用。

1 个答案:

答案 0 :(得分:6)

您可以做的是使用Sitecore的Rules Engine,您可以在其中创建(或使用预先存在的)Condition来确定您是否在移动设备上(为此,您可以使用Mobile Device Detector - 虽然我不知道Sitecore 7是否支持该模块。
然后,您还可以使用Action Set placeholder to value

当然,您也可以创建自己的Action。您只需获取RenderingReference并简单地更改占位符:

var reference = new RenderingReference(this.RenderingID);
reference.Placeholder = "A";

Rules Engine Cookbook

中的更多内容

<强>更新
我写了一篇关于如何完成这项工作的博文:Read it here