私にはいくつかのシナリオが発生しますが、どれがあなたのものかわからない:
1. 現在のアイテムは唯一のアイテムです
製品またはサービス アイテムの完全な詳細を表示する詳細ページのようなものを実行している場合、Sitecore.Context.Item 呼び出しは、ほとんどの場合、URL の現在のアイテム パスに基づいて、コンテキスト内の現在のアイテムを取得します。 (コンテキストを変更する方法はありますが、今はそれらの周辺ケースを無視しましょう)。次に、通常と同じように、フィールドをバインドしたり、値を抽出したりできます。
2.アイテムのリストへのバインディング
「もの」のリスト (つまり、製品またはサービスである可能性のあるアイテムのリストにバインドされた .NET リピーター) のようなことを行っていて、それぞれをユーザー コントロールで表示したい場合。いくつかのオプション:
- コントロールにプロパティ (「DataSource」など) を追加し、サブレイアウトでのリピーター データバインディング中に、ユーザー コントロールの Datasource プロパティを設定します (またはリピーター マークアップで設定します)。
- サブレイアウトのリピーター データ バインディング中にアイテムから必要なプロパティを抽出し、それをユーザー コントロールのさまざまなプロパティに渡します。
3. データソースによる駆動
データソースを持つように構成されたサブレイアウトを実行している場合、作業中の特定のコンポーネントではなく、表示されている「ページ」にバインドされたアイテムを参照するため、コンテキスト アイテムを使用できません。この場合、現在のサブレイアウトからデータソースを抽出するには、次のようなコードが必要です。
var dataSourceId = ((Sitecore.Web.UI.WebControl)Parent).DataSource;
(注: null 参照エラーを防ぐために、上記のコードで何らかのエラー処理を実行することをお勧めします)