GridView と SqlDataSource コントロールのバインド

まず簡単に歴史的な経緯をお話します。

まず ASP.NET 1.1 では DataGrid というコントロールがありました。

DataGrid は依然としてサポートされているものの、ASP.NET 2.0 では GridView が導入されました。

GridView は DataGrid の改良版として出てきた経緯があり、何かと便利に出来ているので ASP.NET でのグリッドコントロールとしてはまずは GridView の利用を検討するべきです。

さて、ここでは GridView に SqlDataSource サーバーコントロールをデータソースとして指定して、データを表示するところまで見てみましょう。

GridView の DataSource プロパティに DataTable などをバインドして、DataBind() メソッドを呼び出す、という典型的な方法でもバインド可能ですが、 SqlDataSource コントロールと接続したほうが、ソート、ページングなどの実装が楽になるのでおススメです。

ここで Northwind データベースの Products テーブルを表示するサンプルを紹介します。出来上がりは次のようになります。

コードは次の通りです。

<%@ Page Language="C#" AutoEventWireup="true" %>
<!DOCTYPE html>
<html>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView
	DataSourceID="NorthwindSqlDataSource"
	ID="GridView1"
	runat="server">
</asp:GridView>
<asp:SqlDataSource
	ID="NorthwindSqlDataSource" 
	SelectCommand="SELECT ProductID, ProductName, UnitPrice FROM Products ORDER BY ProductID"
	ConnectionString="<%$ ConnectionStrings:DB %>"
	RunAt="server" />
</div>
</form>
</body>
</html>

SqlDataSource では ID や RunAt の他は ConnectionString 属性と SelectCommand 属性を指定しています。ConnectionString は Web.config に "DB" という名前のエントリーを作っているので、ConnectionStrings:DB として設定を取得できています。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 ASP.NET 入門