访问组件内组件内部组件模板中的字段

时间:2012-11-01 13:38:15

标签: tridion tridion-2011

我在这里遇到了问题。我目前的结构是:

ComponentA
   FieldA1 - textField
   CombonentsB - componentLink (multi-value)
       FieldB1 - textField
       ComponentC - componentLink
           FieldC1 - textField

现在我正在尝试将ComponentA与Template放在一个页面上。 我正在使用DWT模板。 我需要的是在模板中访问FieldC1。

我已经在TemplateA中添加了“将链接组件添加到包中”TBB。 我认为它与这个相同: http://sdltridionworld.com/community/extension_overview/addcompstopackage.aspx 我可以在模板中访问FieldB1,但不能访问层次结构中的字段。

我是否必须编写另一个包含整个层次结构的TBB,或者它应该按预期工作并且我的访问代码是错误的?

<!-- TemplateBeginRepeat name="ComponentsB" -->
@@ComponentC.Fields.FieldC1@@
<!-- TemplateEndRepeat -->

我能做些什么才能让它发挥作用?还有其他解决方案,然后写一个新的TBB?

===========解决方案============

在Nickoli Roussakov告诉我有关DGX之后,我设法正确实现了它。 代码如下:

<!-- TemplateBeginRepeat name="ComponentsB" -->
    @@Get("ComponentsB[${TemplateRepeatIndex}].Fields.ComponentC.Fields.FieldC1")@@
<!-- TemplateEndRepeat -->

1 个答案:

答案 0 :(得分:8)

GetLinkedComponents仅适用于第一级组件嵌套,因为您不能比使用DWT语法更深入。你可以选择编写一个自定义的tbb来渲染从componentB下来的输出,或者尝试Nuno的DGX扩展(也在sdltridionworld上)而不是GetLinkedComponents。