11

可能重复:
SDL Tridion 中 Dreamweaver 模板中的变量设置

我们使用RenderComponentPresentation(在 Tridion 2009 上)呈现内部和外部链接,以便代码库仅在一个 Dreamweaver 模板中。如果我们可以通过一个可选的 CSS 类在渲染链接时使用,那将会很有帮助。

任何想法如何做到这一点?

4

1 回答 1

16

可以在 RenderContext 中设置一个值,然后在第二个 Dreamweaver 模板中检索它。

在调用 RenderComponentPresentation 之前设置渲染上下文值,如下所示:

@@SetRenderContextVariable("CSSClass","red")@@  

您将需要一个 C# 片段或 TBB 以从渲染上下文中获取变量并将它们添加到第二个 Dreamweaver 模板中的包中。一个例子是:

var renderContext = engine.PublishingContext.RenderContext;
foreach (string key in renderContext.ContextVariables.Keys)
{
    var value = renderContext.ContextVariables[key] as string;
    var item = package.CreateStringItem(ContentType.Text, value);
    package.PushItem("RenderContextVariable."+key, item);
}

然后,您应该能够使用标准 Dreamweaver 表示法访问包中的变量

@@RenderContextVariable.CSSClass@@

希望这可以帮助!

于 2012-05-03T12:52:53.273 回答