私のサイトには、顧客が購入しているアイテムを一覧表示するチェックアウトページがあります。基本リストの下には、詳細インボイスセクションがあり、それぞれの情報を見ることができます。今まで私は購入できる2種類のアイテムしか持っていなかったので、詳細なリストはかなり扱いやすいものでした。今では購入可能な4つの全く別のものを追加しています。だから質問:Sitecoreのサブレイアウトを使ってこの種のレンダリングを処理する良い方法は何ですか? (現在、私はリピータを使用し、適切なフィールドを表示/非表示にします)任意の数の異種アイテムをレンダリングする最良の方法は?
良いニュースは、注文の各広告申込情報に関連するSitecoreアイテムインスタンスがあることです。 Sitecore APIがオブジェクト指向の方法に適している場合は、問題のオブジェクトタイプごとにRender()メソッドを作成することがあります。もちろん、それぞれSitecore.Data.Items.Itemオブジェクトです。サブクラス項目?これはちょうどこの仕事のための過剰なもののようです...
私が考えてきたことは、それぞれの異なるアイテムタイプのサブライナ/ユーザーコントロールです。そしてそれらを動的に請求書ページのプレースホルダに追加します。これは合理的なようだ...思考?下側は、ユーザーコントロールをアイテムとマッチさせなければならない醜いコードです... TemplateIDに基づいていますか?
とにかくここにいくつかの提案を探しています。
オプション#2の場合は、標準のUserControlではなく新しいSublayout()を使用しますか? Sitecoreは私にここで何かを買うつもりですか?私の腸は、内部論理の一部(黒い魔法?)が私から隠されているので、それはもっと障害になると私に言う。 – Bryan
Sublayoutを使用している場合、実際のSitecoreアイテムをそのデータとともに 'DataSource'として渡すことができます(これをC#経由でアクセスする方法に関するリンクを提供しています)。通常のユーザーコントロールとして、特定のアイテムにどのようにアクセスしますか?私たちは文脈項目についてここでは話しません、そうですか?我々は、特定の項目化された詳細項目について話している。 –
ああ、OK。私は通常、アイテムのプロパティをコントロールに追加して、リピーター内のアイテムのリストまたは配列をバインドし、Item = <%#Container.DataItem%>のようなテンプレートに設定できます。そうすれば、それは他のSitecoreコントロールと一致します。 – Bryan