Tridion 调用RenderComponentPresentation时是否有方法传递变量?

Tridion 调用RenderComponentPresentation时是否有方法传递变量?,tridion,tridion2009,Tridion,Tridion2009,可能重复: 我们使用RenderComponentPresentation(在Tridion 2009上)呈现内部和外部链接,以便代码库仅位于一个Dreamweaver模板中。如果我们可以在呈现链接时传递一个可选的CSS类,这将非常有用 你知道怎么做吗?可以在RenderContext中设置一个值,然后在第二个Dreamweaver模板中检索它 在调用RenderComponentPresentation之前,请按如下所示设置渲染上下文值: @@SetRenderContextVariable

可能重复:

我们使用
RenderComponentPresentation
(在Tridion 2009上)呈现内部和外部链接,以便代码库仅位于一个Dreamweaver模板中。如果我们可以在呈现链接时传递一个可选的CSS类,这将非常有用


你知道怎么做吗?

可以在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@@

希望这有帮助

嗨,帕夫,我试过了,但这对我的处境没有帮助。谢谢。这是2011年还是2009年的SDL Tridion?也许你可以更新你的问题来反映这一点。也许您还可以解释一下DWT的位置?您正在尝试将一个值从页面布局DWT传递到组件布局DWT吗?谢谢Chris,我现在尝试一下,看看它是否有效。如果您可以访问SDL Tridion文档,这里将详细介绍这一点,并在Tridion Cookbook中找到