元記事 (英語) : 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 テーブル (ドロップダウン リストの選択) に接続して、ProductIDProductName、および 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 に遵守することは不可能です。アプリケーションに合わせて最適なデータ ソースを選択してください。

リソース

Tagged:

製品について

Ultimate UI for ASP.NET