GridView クラス
アセンブリ: System.Web (system.web.dll 内)

<ControlValuePropertyAttribute("SelectedValue")> _ Public Class GridView Inherits CompositeDataBoundControl Implements IPostBackContainer, IPostBackEventHandler, ICallbackContainer, ICallbackEventHandler
[ControlValuePropertyAttribute("SelectedValue")] public class GridView : CompositeDataBoundControl, IPostBackContainer, IPostBackEventHandler, ICallbackContainer, ICallbackEventHandler
[ControlValuePropertyAttribute(L"SelectedValue")] public ref class GridView : public CompositeDataBoundControl, IPostBackContainer, IPostBackEventHandler, ICallbackContainer, ICallbackEventHandler

GridView コントロールは、データ ソースの値をテーブルに表示するために使用されます。各列はフィールドを表し、各行はレコードを表します。GridView コントロールは、次の機能をサポートしています。
-
SqlDataSource などのデータ ソース コントロールへのバインド。
-
プロパティを動的に設定したり、イベントを処理したりするための、GridView オブジェクト モデルへのプログラムによるアクセス。
![]() |
---|
.NET Framework Version 1.0 の DataGrid コントロールを理解していれば、GridView コントロールを DataGrid コントロールの後継バージョンとして使用できます。 |
列フィールド
GridView コントロールの各列は、DataControlField オブジェクトによって表されます。既定では AutoGenerateColumns プロパティは true に設定されています。つまり、データ ソース内の各フィールドに対して AutoGeneratedField オブジェクトが作成されます。次に、各フィールドはデータ ソースに表示される順序で GridView コントロールの列として表示されます。
AutoGenerateColumns プロパティを false に設定し、独自の列フィールドのコレクションを定義することによって、GridView コントロールに表示する列フィールドを手動で制御することもできます。さまざまな列フィールドの型があり、それによってコントロール内の列の機能は異なります。使用できるさまざまな列フィールドの型の一覧を次の表に示します。
列フィールド型 | |
---|---|
BoundField | |
ButtonField | GridView コントロールの各項目に対してコマンド ボタンを表示します。この機能により、[Add] ボタンや [Remove] ボタンなどのカスタム ボタン コントロールの列を作成できます。 |
CheckBoxField | GridView コントロールの各項目に対してチェック ボックスを表示します。この列フィールド型は、通常、ブール値を持つフィールドの表示に使用されます。 |
CommandField | |
HyperLinkField | データ ソース内のフィールドの値をハイパーリンクとして表示します。この列フィールド型を使用すると、2 番目のフィールドをハイパーリンクの URL にバインドできます。 |
ImageField | |
TemplateField | 指定したテンプレートに基づいて、GridView コントロールの各項目に対してユーザー定義のコンテンツを表示します。この列フィールド型を使用すると、カスタムの列フィールドを作成できます。 |
宣言によって列フィールドのコレクションを定義するには、最初に、GridView コントロールの開始タグと終了タグの間に開始と終了の <Columns> タグを追加します。次に、開始と終了の <Columns> タグの間に挿入する列フィールドを指定します。指定した列が、一覧表の順序で Columns コレクションに追加されます。Columns コレクションにコントロール内のすべての列フィールドが格納され、このコレクションを使用して、GridView コントロール内の列フィールドをプログラムによって制御できます。
明示的に宣言された列フィールドを、自動生成された列フィールドと組み合わせて表示できます。これらの両方を使用した場合、明示的に宣言された列フィールドが先に表示され、自動生成された列フィールドが次に表示されます。
データへのバインド
GridView コントロールは、データ ソース コントロール (SqlDataSource、ObjectDataSource など)、および System.Collections.IEnumerable インターフェイスを実装しているデータ ソース (System.Data.DataView、System.Collections.ArrayList、System.Collections.Hashtable など) にバインドできます。GridView コントロールを適切なデータ ソースの種類にバインドするには、次のいずれかの方法を使用します。
-
データ ソース コントロールにバインドするには、GridView コントロールの DataSourceID プロパティをデータ ソース コントロールの ID 値に設定します。GridView コントロールは、指定したデータ ソース コントロールに自動的にバインドされ、データ ソース コントロールの機能を利用して、並べ替え、更新、削除、およびページングの各機能を実行できます。データにバインドするには、この方法をお勧めします。
-
System.Collections.IEnumerable インターフェイスを実装するデータ ソースにバインドするには、プログラムによって GridView コントロールの DataSource プロパティをデータ ソースに設定してから、DataBind メソッドを呼び出します。このメソッドを使用すると、GridView コントロールは、組み込みの並べ替え、更新、削除、およびページングの各機能を提供しません。適切なイベントを使用して、この機能を提供する必要があります。
データ バインディングの詳細については、「ASP.NET でのデータ アクセス」を参照してください。
![]() |
---|
このコントロールは、ユーザー入力を表示するために使用できます。ユーザー入力には悪意のあるクライアント スクリプトが含まれている可能性があります。アプリケーションに表示する前に、クライアントから送信された実行スクリプト、SQL ステートメントなどのコードの情報はすべて検査してください。できる限り、値は、このコントロールに表示する前に HTML エンコードするようにしてください (BoundField クラスでは、既定で値が HTML エンコードされます)。ASP.NET には入力要求の検証機能があり、ユーザー入力の中のスクリプトと HTML をブロックできます。検証サーバー コントロールは、ユーザー入力を査定する目的でも用意されています。詳細については、「検証コントロールの概要」を参照してください。 |
データ操作
GridView コントロールには、ユーザーがそのコントロール内の項目を使用して並べ替え、更新、削除、選択、ページングを実行できるようにする多数の組み込み機能が用意されています。GridView コントロールがデータ ソース コントロールにバインドされている場合、GridView コントロールは、データ ソース コントロールの機能を利用して、自動的な並べ替え、更新、および削除の各機能を提供します。
![]() |
---|
他の種類のデータ ソースでも、GridView コントロールは並べ替え、更新、および削除をサポートできますが、これらの操作の実装で、適切なイベント ハンドラを用意する必要があります。 |
並べ替えを使用すると、列のヘッダーをクリックすることによって、ユーザーが特定の列を基準にして GridView コントロールの項目を並べ替えることができます。並べ替えを有効にするには、AllowSorting プロパティを true に設定します。
自動的な更新、削除、および選択の各機能は、ButtonField 列フィールドまたは TemplateField 列フィールドの (それぞれの CommandName が "Edit"、"Delete"、"Select" に設定されている) ボタンがクリックされたときに有効になります。GridView コントロールでは、AutoGenerateEditButton、AutoGenerateDeleteButton、または AutoGenerateSelectButton の各プロパティが true に設定されている場合、それぞれ Edit、Delete、または Select の各ボタンを持つ CommandField 列フィールドを自動的に追加できます。
![]() |
---|
GridView コントロールでは、データ ソースへのレコードの挿入は直接サポートされません。ただし、GridView コントロールを DetailsView コントロールまたは FormView コントロールと組み合わせて使用することによって、レコードを挿入できます。詳細については、それぞれ DetailsView または FormView のトピックを参照してください。 |
GridView コントロールでは、データ ソース内のすべてのレコードを同時に表示せずに、自動的にレコードを複数のページに分割できます。ページングを有効にするには、AllowPaging プロパティを true に設定します。
ユーザー インターフェイスのカスタマイズ
コントロールのさまざまな部分にスタイル プロパティを設定することによって、GridView コントロールの外観をカスタマイズできます。さまざまなスタイル プロパティの一覧を次の表に示します。
AlternatingRowStyle | GridView コントロールの交互のデータ行のスタイル設定。このプロパティが設定されている場合、データ行は、RowStyle 設定と AlternatingRowStyle 設定が交互に適用されて表示されます。 |
EditRowStyle | |
EmptyDataRowStyle | データ ソースにレコードが格納されていない場合に GridView コントロールに表示される、空のデータ行のスタイル設定。 |
FooterStyle | |
HeaderStyle | |
PagerStyle | |
RowStyle | GridView コントロールのデータ行のスタイル設定。AlternatingRowStyle プロパティも設定されている場合、データ行は、RowStyle 設定と AlternatingRowStyle 設定が交互に適用されて表示されます。 |
SelectedRowStyle |
コントロールのさまざまな部分を表示または非表示にすることもできます。表示または非表示にする部分を制御するプロパティの一覧を次の表に示します。
イベント
GridView コントロールには、プログラムに利用できる複数のイベントが用意されています。これにより、イベントが発生するたびにカスタム ルーチンが実行されるようにできます。GridView コントロールでサポートされるイベントの一覧を次の表に示します。
ユーザー補助
このコントロールに既定でレンダリングされるマークアップは、Web Content Accessibility Guidelines (WCAG) 1.0 の優先度 1 ガイドラインなどのユーザー補助に関する標準に適合しない可能性があります。このコントロールのユーザー補助サポートの詳細については、「ASP.NET コントロールとユーザー補助」を参照してください。

GridView コントロールを使用して、Microsoft SQL Server の Pubs サンプル データベースの Authors テーブルから値を表示する方法を次のコード例に示します。値は、SqlDataSource コントロールを使用して取得されます。
<%@ Page language="VB" %> <html> <body> <form runat="server"> <h3>GridView Example</h3> <asp:gridview id="CustomersGridView" datasourceid="CustomersSource" autogeneratecolumns="true" emptydatatext="No data available." allowpaging="true" runat="server"> </asp:gridview> <!-- This example uses Microsoft SQL Server and connects --> <!-- to the Northwind sample database. Use an ASP.NET --> <!-- expression to retrieve the connection string value --> <!-- from the Web.config file. --> <asp:sqldatasource id="CustomersSource" selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]" connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" runat="server"/> </form> </body> </html>
<%@ Page language="C#" %> <html> <body> <form runat="server"> <h3>GridView Example</h3> <asp:gridview id="CustomersGridView" datasourceid="CustomersSource" autogeneratecolumns="true" emptydatatext="No data available." allowpaging="true" runat="server"> </asp:gridview> <!-- This example uses Microsoft SQL Server and connects --> <!-- to the Northwind sample database. Use an ASP.NET --> <!-- expression to retrieve the connection string value --> <!-- from the Web.config file. --> <asp:sqldatasource id="CustomersSource" selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]" connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" runat="server"/> </form> </body> </html>
GridView コントロールを使用してレコードを編集する方法を次のコード例に示します。
<%@ Page language="VB" %> <html> <body> <form runat="server"> <h3>GridView Edit Example</h3> <!-- The GridView control automatically sets the columns --> <!-- specified in the datakeynames property as read-only. --> <!-- No input controls are rendered for these columns in --> <!-- edit mode. --> <asp:gridview id="CustomersGridView" datasourceid="CustomersSqlDataSource" autogeneratecolumns="true" autogeneratedeletebutton="true" autogenerateeditbutton="true" datakeynames="CustomerID" runat="server"> </asp:gridview> <!-- This example uses Microsoft SQL Server and connects --> <!-- to the Northwind sample database. Use an ASP.NET --> <!-- expression to retrieve the connection string value --> <!-- from the Web.config file. --> <asp:sqldatasource id="CustomersSqlDataSource" selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]" updatecommand="Update Customers SET CompanyName=@CompanyName, Address=@Address, City=@City, PostalCode=@PostalCode, Country=@Country WHERE (CustomerID = @CustomerID)" deletecommand="Delete from Customers where CustomerID = @CustomerID" connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" runat="server"> </asp:sqldatasource> </form> </body> </html>
<%@ Page language="C#" %> <html> <body> <form runat="server"> <h3>GridView Edit Example</h3> <!-- The GridView control automatically sets the columns --> <!-- specified in the datakeynames property as read-only. --> <!-- No input controls are rendered for these columns in --> <!-- edit mode. --> <asp:gridview id="CustomersGridView" datasourceid="CustomersSqlDataSource" autogeneratecolumns="true" autogeneratedeletebutton="true" autogenerateeditbutton="true" datakeynames="CustomerID" runat="server"> </asp:gridview> <!-- This example uses Microsoft SQL Server and connects --> <!-- to the Northwind sample database. Use an ASP.NET --> <!-- expression to retrieve the connection string value --> <!-- from the Web.config file. --> <asp:sqldatasource id="CustomersSqlDataSource" selectcommand="Select [CustomerID], [CompanyName], [Address], [City], [PostalCode], [Country] From [Customers]" updatecommand="Update Customers SET CompanyName=@CompanyName, Address=@Address, City=@City, PostalCode=@PostalCode, Country=@Country WHERE (CustomerID = @CustomerID)" deletecommand="Delete from Customers where CustomerID = @CustomerID" connectionstring="<%$ ConnectionStrings:NorthWindConnectionString%>" runat="server"> </asp:sqldatasource> </form> </body> </html>


System.Web.UI.Control
System.Web.UI.WebControls.WebControl
System.Web.UI.WebControls.BaseDataBoundControl
System.Web.UI.WebControls.DataBoundControl
System.Web.UI.WebControls.CompositeDataBoundControl
System.Web.UI.WebControls.GridView


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


GridView メンバ
System.Web.UI.WebControls 名前空間
BoundField クラス
ButtonField クラス
CheckBoxField クラス
CommandField クラス
DataGrid クラス
DetailsView クラス
FormView クラス
HyperLinkField
ImageField
SqlDataSource
TemplateField
AllowPaging
AllowSorting
AutoGenerateColumns
AutoGenerateEditButton
AutoGenerateSelectButton
Columns
System.Web.HttpServerUtility.HtmlEncode
その他の技術情報
ASP.NET でのデータ アクセス
データ ソース コントロールの概要
データ ソース コントロールとパラメータの使用
Weblioに収録されているすべての辞書からGridView クラスを検索する場合は、下記のリンクをクリックしてください。

- GridView クラスのページへのリンク