![WebHierarchicalDataSource Creating a Self Related Data Relation 01.png](images/WebHierarchicalDataSource_Creating_a_Self-Related_Data_Relation_01.png)
WebHierarchicalDataSource™ を使用して自己関係的なデータ モデルを表すことができます。データ エンティティが相互に関係するフィールドを含む場合、WebHierarchicalDataSource を使用して階層ビューとして自己関係的なデータ モデルを表示できます。
たとえば、Northwind データベースの Employees テーブルには従業員が直属する従業員 ID を指定する ReportTo フィールドが含まれています。WebHierarchicalDataSource を使用して自己関係的な関係を定義することにより、従業員の序列の階層を表示できます。
注: 自己関係的なデータ関係を作成する時、関係が無限に反復しないことを確認してください。無限に反復するとデータは表示されません。
従業員が誰に直属するのかを示すために階層で Employees テーブルを表示します。WebHierarchicalDataSource コンポーネントを使用して自己関係的なデータ関係を使用してこれを実行します。データの階層は TreeView コントロールで表示されます。
ASP.NET Web ページを作成します。
ScriptManager コンポーネントをフォームにドラッグします。
TreeView コントロールをフォームにドラッグします。
WebHierarchicalDataSource コンポーネントをフォームにドラッグします。
SqlDataSource コンポーネントをフォームにドラッグします。
Northwind データベースの Employees テーブルに接続するように SqlDataSource コンポーネントを構成します。EmployeeID、LastName、および ReportTo フィールドを取得します。
WebHierarchicalDataSource のクイック デザイナーで、[ビューの追加] をクリックします。
SqlDataSource1 をデータ ソースとして選択します。
[OK] をクリックします。
[子の追加] をクリックして子データを追加します。
同じデータ ソース、SqlDataSource1 を子データ ソースとして選択します。
Specify Fields to Join セクションで、EmployeeID フィールドを親列のままにしておき、ReportsTo フィールドを子列として選択します。
[OK] をクリックします。クイック デザインのメイン画面に戻ります。
[適用]、そして [OK] をクリックします。WebHierarchicalDataSource は、SQL データを階層表示するように構成されています。
TreeView コントロールのスマート タグをクリックします。
データ ソースに WebHierarchicalDataSource を選択します。
[TreeNode Databindings の編集] リンクをクリックします。TreeView DataBindings エディターが表示します。
[使用可能なデータ バインド] のセクションで SqlDataSource1_DefaultView を選択し、[追加] をクリックします。
[プロパティ] ウィンドウで、SqlDataSource1_DefaultView が DataMember になっており、TextField プロパティが LastName に設定されていることを確認します。
[適用]、そして [OK] をクリックします。
アプリケーションを実行します。誰に直属しているのかの序列に従ってネストされる従業員名を表示する階層ツリー表示を確認します。