[sitecore][datasource]コールアウトデータソースの継続

概要:コールアウトに使われるデータソースの継続についてのメモ書きです。


 

サイトの構築の際にコールアウトがよく使われます。

20140514_01

特定のページに同じコールアウトのサブレイアウトを使用し、データソースを変えたりするにはSitecoreのルールエンジンおよびコンディションによってレンダリング レンダリングのデータソースを設定したりします。ただ実際にこのルールエンジンを使うお客さんこれまでの作業でそれほど多くない。

よく、お客さんから、デフォルトのコールアウトを設定しれくれという要求があります。たとえば、サービスーというサイトコアのフォルトがあり、その下数重レベルのサブアイテムフォルダがあって、さらにその下に数千のアイテムがあります。スタンダード値にてデフォルトのデータソースを設定する方法もありますが、もし、既存アイテムにデーターソースがない場合は、もっとも近いアンセスターのアイテムのデーターソースを使用という方法があります。もし、近いアンセスターがデーターソースが設定されていないなら、ツリーを従って上の方へ繰り返しでデーターソースを探します。

コールアウトのデータソースの取得もGoogleで検索を書けば下記のように簡単に取得することができます。

ただ、レンダリングにてデーターソースを取得する記事があまり見つからなかったので、それをついて書いてみようと思った。

まず、下準備します。

1.三つのページと三つのコールアウトを用意します。

20140514_02

2.それぞれのページにそれぞれのデータソースを指定します。

20140514_03

3.ページを表示します。

20140514_04

ここで、もし、Levle3のデーターソースを削除します。

20140514_05

Level3のページにて、コールアウトが最も近いアンセスターがデーターソースが設定されているかどうかを確認し、この場合Level2にてデータースースが設定されているので、それを使用します。

20140514_06

もし、Level2もデーターソースが設定されていない場合、

20140514_07

Level3のページにて、コールアウトが最も近いアンセスターがデーターソースが設定されていないので、引き続き上のアイテムを確認し、
この場合Level1にてデータースースが設定されているので、それを使用します。

20140514_08

さて、コードを見てみましょう。
Callout.ascx

Callout.ascx.cs

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です