我在这里遇到了问题。我目前的结构是:
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 -->
答案 0 :(得分:8)
GetLinkedComponents仅适用于第一级组件嵌套,因为您不能比使用DWT语法更深入。你可以选择编写一个自定义的tbb来渲染从componentB下来的输出,或者尝试Nuno的DGX扩展(也在sdltridionworld上)而不是GetLinkedComponents。