2

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

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

这更多地与移动网站中的内容定位不同而不是桌面网站有关。

更新

Trayek 的回答很好,肯定会奏效。虽然,我最终使用了不同的方法。

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

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

这对我有用。

4

1 回答 1

6

您可以做的是使用 Sitecore 的规则引擎,您可以在其中创建(或使用预先存在的)Condition来确定您是否在移动设备上(为此,您可以使用移动设备检测器- 尽管我不知道 Sitecore 7 是否支持该模块)。
然后,您还可以使用Action Set placeholder to value.

当然,您也可以创建自己的 Action。您所要做的就是获取RenderingReference并简单地更改占位符,如下所示:

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

规则引擎食谱中的更多信息

更新
我写了一篇关于如何完成这项工作的博客文章:在这里阅读

于 2013-09-18T08:01:03.460 回答