元記事 (英語) : Craig Shoemaker https://www.infragistics.com/community/product_platforms/aspnet/w/aspnet-wiki/49/data-binding-the-webdatagrid-to-common-data-sources
データ バインドされたコントロールを使用する前に、コントロールにデータを提供する方法を決定する必要があります。WebDataGrid はさまざまなデータ ソースに接続できます。この記事は 3 つのよく使用されるデータ ソースを紹介します。
- カスタム オブジェクト コレクション
- オブジェクト データ ソース
- SQL データ ソース
データ ソースを使用する前に、Web フォームに ScriptManager および WebDataGrid を追加します。Visual Studio デザイナーで、ページは以下の画像のようになります。
カスタム オブジェクト コレクション
グリッドをデータにバインドする簡単な方法はカスタム オブジェクト コレクションです。オブジェクトのコレクションを作成した後に、グリッドの DataSource プロパティをコレクションに設定して、DataBind メソッドを呼び出します。
例として、nBuilder によって Person クラスのインスタンスを生成します。アプリケーションのデータは普通にビジネス ロジック レイヤー、サービス、またはデータ アクセス レイヤーから直接取得します。
ページを実行すると、ページでグリッドが表示されます。デフォルトでは、グリッドは自動的に列を生成するため、使用可能なグリッドに動的に列を定義する必要がありません。
ObjectDataSource
ObjectDataSource はビジネス ロジック レイヤーのインターフェイスを提供するコントロールです。データ バインドされたコントロールと操作するためにオブジェクトに操作を実行します。WebDataGrid は ObjectDataSource の SELECT、UPDATE、INSERT、および DELETE コマンドを使用すると、コントロールと操作できます。
最初の手順は、データ ソース コントロールをアプリケーションのデータを選択して変更するメソッドを含むクラスに接続します。ページに ObjectDataSource を追加した後に、ObjectDataSource のスマート タグをクリックして、[データ ソースの構成] リンクをクリックします。
次、ドロップダウン リストにデータ ソースの必要なメソッドを含むクラス名を検索します。そのクラスを選択した後に、[次へ >] をクリックします。
ウィザードの次のダイアログでは、コントロールのコマンドをデータの選択、更新、追加 (挿入)、および削除するメソッドに接続します。クラスのメソッド名は一般的にデータ ソース コントロールに関連するコマンドのようです。たとえば、以下の画像では PersonRepository クラスは SELECT コマンドに関連する GetAll メソッドを含みます。
同じように、Update メソッドは UPDATE コマンドに関連します。
Insert メソッドは INSERT コマンドに関連します。
Delete メソッドは DELETE コマンドに関連します。
すべてのメソッドをコマンドにマップした後に、完了をクリックします。次の手順はグリッドにデータ ソース コントロールを関連付けます。この関連付けを設定するには、スマート タグをクリックして、[データ ソースの選択] ドロップダウンをクリックします。ObjectDataSource の ID を選択します。Visual Studio で通知ダイアログが表示されます。
このダイアログでは、デザイナーでグリッドの列およびキーの定義を作成するかどうかを選択できます。依存のカスタム グリッドを使用する場合以外に、[はい] をクリックします。デザイナーはグリッドを構成するためのコードを生成します。
列とキーの定義が作成した後に、グリッドをブラウザーで表示できます。
SqlDataSource
SqlDataSource はデータベースのインターフェイスを提供するコントロールです。このコントロールはデータベースのストアド プロシージャーにマップする SQL ステートメントまたはコマンドを保存します。最初に、SqlDataSource コントロールをデータベース接続文字列に設定します。画像を作成するためのアプリケーションの web.config ファイルで NorthwindConnectionString が定義されたため、このオプションを自動的にドロップダウン リストで表示されます。
注: 依存のデータベース接続がない場合、[新しい接続] ボタンをクリックして、ウィザードで接続文字列を生成するための手順を実行します。
次の手順では、コントロールのデータを選択するために、テーブル、ビュー、またはストアド プロシージャを選択します。この記事では、SQL コマンドを使用します。以下の画像はコントロールを Products テーブル (ドロップダウン リストの選択) に接続して、ProductID、ProductName、および QuantityPerUnit のみを選択する方法を表示します。
残りの INSERT、UPDATE、および DELETE コマンドを処理する SQL を生成するには、[詳細…] ボタンをクリックします。以下のダイアログが表示されます。
[INSERT、UPDATE、および DELETE ステートメントの生成] チェックボックスをクリックして、デザイナーはこのステートメントを生成します。
次、データ ソース コントロールの生成された SELECT コマンドを確認できます。[クエリのテスト] ボタンをクリックすると、クエリによってデータベースから返されたデータのプレビューを表示します。プレビューの問題がない場合、[完了] ボタンをクリックして、ウィザードを閉じます。
データ ソースが構成した後に、WebDataGrid を SqlDataSource に接続できます。Visual Studio デザイナーに戻って、ページの WebDataGrid インスタンスをクリックします。スマート タグの矢印をクリックします。スマート タグで [データ ソースの選択] ドロップダウンをクリックします。ドロップダウンでデータ ソースの ID を選択します。
データ ソースを選択したときに、以下のダイアログが表示されます。
このダイアログでは、デザイナーを自動的にグリッドの列およびキーの定義を作成するかどうかを決めます。依存のカスタム グリッドを使用する場合以外に、[はい] をクリックします。デザイナーがグリッドを構成するためにコードを生成します。
グリッドを構成した後に、ページを実行できます。以下のようなグリッドが表示されます。
SqlDataSource の使用について
WebDataGrid は SqlDataSource コントロールとシームレスに動作できますが、以下の SqlDataSource コントロールの使用についての情報を読んでください。SqlDataSource は T-SQL コードをプレゼンテーション レイヤーに挿入します。データベース スキーマが変更する場合、問題が発生する可能性があります。更に、Don’t repeat yourself (DRY) 原則がアプリケーション開発には大切です。1 つのテーブルにアクセスする必要がある 2 つ以上のページがある場合、各ページは SQL ステートメントをそのページに保存します。SqlDataSource を使用すると、DRY に遵守することは不可能です。アプリケーションに合わせて最適なデータ ソースを選択してください。
リソース