Sitecore 6.5:如何在webforms中获取当前渲染(非mvc)

时间:2016-11-14 19:02:31

标签: sitecore sitecore6

我有一个渲染但想把它放在页面上的不同占位符中。我想根据正在处理的当前渲染的占位符修改HTML。有没有人遇到过这个场景并解决了它?请分享。

示例:我有图像轮播渲染项目。它有自己的.cs类,用于创建HTML。现在,在Sitecore内容项的演示文稿详细信息中,我添加了一个带有占位符“zone1”的图像轮播渲染,以及另一个图像轮播渲染到“zone2”占位符。基于zone1和zone2,HTML会有所不同。 我重写了RenderModel(HtmlTextWriter编写器)来覆盖HTML。

2 个答案:

答案 0 :(得分:0)

您可以使用渲染参数来实现相同的功能,而不是基于占位符对其进行硬编码。最佳方法是创建用户可以选择的值列表,并将其放在渲染模板上。将其添加到您的渲染定义中,您的用户就可以选择其中一个值 - 可以将其视为'变体'你的控制权在您的代码中,您可以轻松获得此值并根据需要进行调整。

此方法需要您编辑的一些工作,因为他们需要设置值(您可以使用标准值来帮助),但会给您灵活性。如果您需要新占位符中的组件或需要任何其他更改,这种灵活性将为您节省大量时间并防止硬编码意大利面。

答案 1 :(得分:0)

您可以使用以下代码从子布局获取占位符:

        Sublayout currentSublayout = this.Parent as Sublayout;

        Placeholder currentPlaceholder = currentSublayout.Parent as Placeholder;

获取占位符的名称:

currentPlaceholder.Key