LinqDataSourceコントロールを利用したデータ表示
それでは、実際にLinqDataSourceコントロールを利用したデータ表示方法について解説します。LinqDataSourceコントロールは、従来のデータソースコントロールと同様、GridView/DetailsViewのようなデータバインドコントロールのタスクメニューから[データソースの選択]を選ぶと、Webページに追加されます(もちろん、ツールボックスからの追加も可能)。データソース構成ウィザードからLINQを選択し[OK]をクリックすると、[データソース構成ウィザード]が表示されます(図14~15)。
図15ではDataContextオブジェクトを選択します。これはLINQ to SQLのファイルと対応していますが、オブジェクトの名称は「<dbmlファイル名>DataContext」となります。
図16ではテーブルの選択や、どの項目をSelect句で表示するかを選択します。サンプルでは表示したデータの編集・更新を行うので、全列選択(*)します。
[完了]ボタンをクリックすると、対応のデータバインドコントロール(サンプルではGridViewコントロール)はLinqDataSourceコントロールの結果を表示します(図17)。
ちなみに、LinqDataSourceコントロールのタグ表記は次のようになります。
<asp:LinqDataSource ID="LinqDataSource1" runat="server" ContextTypeName="DataClassesDataContext" TableName="titles"> </asp:LinqDataSource>
プロパティウィンドウのSelect/Where/OrderByプロパティから、コレクションダイアログを起動し、Select句やWhere句、OrderBy句の設定ができます。サンプルではWhere句の追記を行います(図18)。
この状態では実行時に全列表示されるので、タスクメニューの[列の編集]から不要な列の削除を行います。サンプルではtitle、price、pubdate以外の列を削除します。
上記の作業を終えた画面は図25になります。
実行結果は図20のようになります。
ここまで、ほとんどコーディングレスで設定できました。続いて、更新を行うための設定について解説します。
LinqDataSourceコントロールを利用したデータの更新
LinqDataSourceコントロールを利用したデータの更新についてですが、GridViewコントロールのプロパティで編集を有効に設定するだけでは編集後の更新はできません。実行中の画面で編集を行い、[更新]ボタンを押すとエラーが発生します(図21)。
これはLinqDataSourceコントロールのEnableUpdateプロパティがTrueに設定されてないからです。LinqDataSourceコントロールのタスクメニューにはEnableUpdateプロパティがあるのでチェックをつけます(プロパティウィンドウではBoolean型で設定)。

これでデータの更新が可能になりました(図23~24)。
LinqDataSourceコントロールは他に挿入、削除もできます。更新の場合と同じ手順で設定できるので、興味がある方は他の機能にも触れてみてください。











