我在我的網站上有一個結賬頁面,其中列出了客戶正在購買的商品...並且在基本列表下面是「詳細發票」部分,他們可以在其中查看每個商品的具體信息。直到現在,我只有兩種不同類型的物品可以購買,所以詳細清單很容易處理。現在我添加了四個額外的,可以購買的完全不同的東西......所以問題:使用Sitecore子佈局處理這種呈現的一種好方法是什麼? (目前,我只使用一箇中繼器和隱藏/顯示相應的字段)呈現任意數量異構項目的最佳方法?
好消息是,各行項目的訂單有關聯的Sitecore的項目實例。如果Sitecore API更適合於面向對象的方法學,那麼我可能會在我的每個對象類型上創建一個Render()方法。但他們當然是每個Sitecore.Data.Items.Item對象。子類項?這似乎只是這項任務的矯枉過正......
我已經考慮過的東西是每個不同的項目類型的Sublayout /用戶控件...然後動態地將它們添加到發票頁面上的佔位符。這似乎是合理的...想法?不利的方面是,難看的代碼必須將用戶控件與該項目相匹配...基於TemplateID可能嗎?
無論如何,只是在這裏尋找一些建議。
對於選項#2 ...爲什麼要使用「新Sublayout()」而不是僅使用標準UserControl? Sitecore會在這裏爲我買東西嗎?我的直覺告訴我這將是更多的障礙,因爲一些內部邏輯(黑魔法?)對我來說是隱藏的。 – Bryan
因爲如果你使用Sublayout,你可以將實際的Sitecore項目與數據一起作爲'DataSource'(我提供了一個關於如何通過C#訪問的鏈接)的數據傳遞給子佈局。作爲一個常規的用戶控件,您將如何訪問特定的項目?我們不是在討論上下文項目,對吧?我們正在討論具體的細化項目。 –
啊,好的。我通常將Item屬性添加到我的控件中,以便我可以在Repeater中綁定項目列表或數組,然後將其設置爲像Item = <%#Container.DataItem%>這樣的模板。這樣它就與其他Sitecore控件一致。 – Bryan