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

Nom*_*ler 2 sitecore sitecore7

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

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

这更多地与在Mobile中以不同于桌面站点的方式定位内容有关.

UPDATE

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

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

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

这对我有用.

Tra*_*yek 6

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

当然,您也可以创建自己的Action.你需要做的RenderingReference只是改变占位符,如下所示:

var reference = new RenderingReference(this.RenderingID);
reference.Placeholder = "A";
Run Code Online (Sandbox Code Playgroud)

有关规则引擎手册中的更多信息

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