2012-11-01 51 views
5

Tôi gặp sự cố ở đây. Cấu trúc mà tôi có tại thời điểm này là:Truy cập các trường trong mẫu của các thành phần bên trong các thành phần bên trong các thành phần

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

Bây giờ tôi đang cố gắng đặt ComponentA với Mẫu trên trang. Tôi đang sử dụng DWT Templating. Điều tôi cần là truy cập FieldC1 trong mẫu.

Tôi đã thêm TBB "Thêm thành phần được liên kết vào gói" trong TemplateA. Tôi nghĩ nó giống hệt như thế này: http://sdltridionworld.com/community/extension_overview/addcompstopackage.aspx Tôi có thể truy cập FieldB1 trong mẫu của mình nhưng không phải là trường tiếp tục xuống trong cấu trúc phân cấp.

Tôi có phải viết một TBB khác bao gồm toàn bộ quá trình tìm kiếm, hay nó hoạt động như dự kiến ​​và mã truy cập của tôi là sai?

<!-- TemplateBeginRepeat name="ComponentsB" --> 
@@[email protected]@ 
<!-- TemplateEndRepeat --> 

Tôi có thể làm gì để nó hoạt động? Có giải pháp nào khác sau đó viết TBB mới không?

=========== SOLUTION ============

Sau Nickoli Roussakov nói với tôi về DGX, tôi cố gắng thực hiện nó một cách chính xác. Đây mã:

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

Trả lời

8

GetLinkedComponents chỉ hoạt động trên cấp độ đầu tiên của thành phần làm tổ bởi vì bạn không thể đi sâu hơn với cú pháp DWT. Các tùy chọn của bạn là viết một tbb tùy chỉnh để hiển thị đầu ra cần thiết từ componentB, hoặc thử phần mở rộng DGX của Nuno (cũng trên sdltridionworld) thay vì GetLinkedComponents.

+0

thx rất nhiều, tôi đã quản lý để thực hiện yêu cầu với DGX! – Egi

Các vấn đề liên quan