はじめに
第1回は動的データアプリケーションを作成するのに適したアプリケーション基盤のASP.NET Dynamic Dataアプリケーション(以下、Dynamic Data)の基礎知識について、第2回は既存のWeb FormアプリケーションにおけるDynamic Data機能の有効化と、既存のWebプロジェクトへの組み込みについてご紹介しました。前回は、Dynamic Dataのデータ表示を実現するデータフィールドのカスタマイズと、属性クラスの活用方法とカスタマイズについてご紹介しました。最終回となる今回はDynamic Dataにおけるフィルター機能の自作方法と、列の入れ替え表示などを実現するエンティティテンプレートの活用方法についてご紹介します。
本稿では触れている方も多いであろうEntity Frameworkを使用して解説とサンプル作成を行います。なお、ASP.NET Dynamic Dataの基本的な開発や説明については過去の記事を参照してください。
必要な環境
次の環境が必要です。
- Visual Studio 2010(Visual Web Developer 2010でも可)
- NorthWind/Pubsデータベース
- ASP.NET AJAX Control Toolkit
Visual Studio 2010(以下、VS 2010)のインストールは、Visual Studio 2010 Beta 2と変わりありませんので、「Visual Studio 2010 Beta 2を使ってみよう」を参考に行ってください。
本サンプル・プログラムを動作させるに当たっては、無償で提供されているNorthWindデータベースとPubsデータベースを使用しています。
また、データフィールドのカスタマイズにあたり、ASP.NET AJAX Control Toolkit(以下、Control Toolkit)を使用しますので、事前にダウンロードしてください。ダウンロード後、サンプルプロジェクトにAjaxControlToolkit.dllを参照追加してください。
今回触れる内容
今回は、次の内容に触れます。
- フィルターの作成
- エンティティテンプレートのカスタマイズ
フィルターの作成
Dynamic Dataアプリケーションは実行時にフィルター機能が適用できる場合、自動でフィルターコントロールが表示されます。これらのフィルター機能はAJAX対応されていて、選択した時点でテーブルの値をフィルタリングした結果を表示します(図1~2)。
Dynamic Dataのフィルター機能は第1回で触れたように、Boolean型の値によるフィルター、列挙型の値によるフィルター、一体多リレーションシップを持つデータに対するフィルターが既定で用意されています。それらは、/DynamicData/Filtersフォルダ内に格納されています。
例えば、「このフィルターを特定の日付より前の値を取得したい」「特定の日の値を取得したい」などの要望があるならば、自作のフィルターを用意することで解決できます。今回はOrdersテーブル上で使用する自作の日付フィルターを作成します。