DataGridColumnCollection クラス
アセンブリ: System.Web (system.web.dll 内)
構文Public NotInheritable Class DataGridColumnCollection Implements ICollection, IEnumerable, IStateManager
解説DataGridColumnCollection コレクションを使用して、DataGridColumn 派生列オブジェクトのコレクションをプログラムによって管理します。これらのオブジェクトは DataGrid コントロール内の列を表します。DataGridColumnCollection コレクションに列を追加、削除、または挿入できます。
メモ |
|---|
| AutoGenerateColumns プロパティを true, に設定すると、DataGrid コントロールが作成した列は Columns コレクションに追加されません。 |
DataGrid コントロールは、その Columns コレクションの内容をビューステートには格納しません。列を動的に追加または削除するには、ページが更新されるたびにプログラムによって列を追加または削除する必要があります。DataGrid コントロールの状態を再読み込みしてコントロール自体を再度ビルドする前に、列を追加または削除する Page_Init 関数を提供します。それ以外の場合は、Columns コレクションに対する変更内容が、DataGrid コントロールが表示されるときに反映されません。
メモ |
|---|
| DataGrid コントロールの Columns コレクションに、プログラムによって列を追加または削除できますが、列を静的に一覧表示してから、Visible プロパティを使用して各列を表示するか、非表示にする方が簡単です。 |
DataGrid コントロールに列が表示される順序は、コレクションの中の列の順序によって決まります。
DataGridColumn クラスから派生したさまざまな列クラスの一覧を次の表に示します。
使用例DataGridColumnCollection コレクションを使用して、DataGrid コントロールに列を動的に追加する方法を次の例コードに示します。DataGrid コントロールの Columns プロパティは、DataGridColumnCollection クラスのインスタンスです。
<%@ Page Language="VB" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <script runat="server"> Function CreateDataSource() As ICollection ' Create sample data for the DataGrid control. Dim dt As DataTable = New DataTable() Dim dr As DataRow ' Define the columns of the table. dt.Columns.Add(New DataColumn("IntegerValue", GetType(Int32))) dt.Columns.Add(New DataColumn("StringValue", GetType(string))) dt.Columns.Add(New DataColumn("CurrencyValue", GetType(double))) ' Populate the table with sample values. Dim i As Integer For i = 0 to 8 dr = dt.NewRow() dr(0) = i dr(1) = "Item " & i.ToString() dr(2) = 1.23 * (i + 1) dt.Rows.Add(dr) Next i Dim dv As DataView = New DataView(dt) Return dv End Function Sub Page_Load(sender As Object, e As EventArgs) ' Create a DataGrid control. Dim ItemsGrid As DataGrid = New DataGrid() ' Set the properties of the DataGrid. ItemsGrid.ID = "ItemsGrid" ItemsGrid.BorderColor = System.Drawing.Color.Black ItemsGrid.CellPadding = 3 ItemsGrid.AutoGenerateColumns = False ' Set the styles for the DataGrid. ItemsGrid.HeaderStyle.BackColor = System.Drawing.Color.FromArgb(&H0000aaaa) ' Create the columns for the DataGrid control. The DataGrid ' columns are dynamically generated. Therefore, the columns ' must be re-created each time the page is refreshed. ' Create and add the columns to the collection. ItemsGrid.Columns.Add(CreateBoundColumn("IntegerValue", "Item")) ItemsGrid.Columns.Add( _ CreateBoundColumn("StringValue", "Description")) ItemsGrid.Columns.Add( _ CreateBoundColumn("CurrencyValue", "Price", "{0:c}", _ HorizontalAlign.Right)) ItemsGrid.Columns.Add( _ CreateLinkColumn("http:'www.microsoft.com", "_self", _ "Microsoft", "Related link")) ' Specify the data source and bind it to the control. ItemsGrid.DataSource = CreateDataSource() ItemsGrid.DataBind() ' Add the DataGrid control to the Controls collection of ' the PlaceHolder control. Place.Controls.Add(ItemsGrid) End Sub Function CreateBoundColumn(DataFieldValue As String, HeaderTextValue As String) As BoundColumn ' This version of CreateBoundColumn method sets only the ' DataField and HeaderText properties. ' Create a BoundColumn. Dim column As BoundColumn = New BoundColumn() ' Set the properties of the BoundColumn. column.DataField = DataFieldValue column.HeaderText = HeaderTextValue Return column End Function Function CreateBoundColumn(DataFieldValue As String, _ HeaderTextValue As String, FormatValue As String, _ AlignValue As HorizontalAlign) As BoundColumn ' This version of CreateBoundColumn method sets the DataField , ' HeaderText, and DataFormatString properties. It also sets the ' HorizontalAlign property of the ItemStyle property of the column. ' Create a BoundColumn using the overloaded CreateBoundColumn method. Dim column As BoundColumn = CreateBoundColumn(DataFieldValue, HeaderTextValue) ' Set the properties of the BoundColumn. column.DataFormatString = FormatValue column.ItemStyle.HorizontalAlign = AlignValue Return column End Function Function CreateLinkColumn(NavUrlValue As String, TargetValue As String, _ TextValue As String, HeaderTextValue As String) As HyperLinkColumn ' Create a BoundColumn. Dim column As HyperLinkColumn = New HyperLinkColumn() ' Set the properties of the ButtonColumn. column.NavigateUrl = NavUrlValue column.Target = TargetValue column.Text = TextValue column.HeaderText = HeaderTextValue Return column End Function </script> <body> <form runat=server> <h3>DataGrid Constructor Example</h3> <b>Product List</b> <asp:PlaceHolder id="Place" runat="server"/> </form> </body> </html>
<%@ Page Language="C#" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <script runat="server"> ICollection CreateDataSource() { // Create sample data for the DataGrid control. DataTable dt = new DataTable(); DataRow dr; // Define the columns of the table. dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32))); dt.Columns.Add(new DataColumn("StringValue", typeof(string))); dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double))); // Populate the table with sample values. for (int i = 0; i < 9; i++) { dr = dt.NewRow(); dr[0] = i; dr[1] = "Item " + i.ToString(); dr[2] = 1.23 * (i + 1); dt.Rows.Add(dr); } DataView dv = new DataView(dt); return dv; } void Page_Load(Object sender, EventArgs e) { // Create a DataGrid control. DataGrid ItemsGrid = new DataGrid(); // Set the properties of the DataGrid. ItemsGrid.ID = "ItemsGrid"; ItemsGrid.BorderColor = System.Drawing.Color.Black; ItemsGrid.CellPadding = 3; ItemsGrid.AutoGenerateColumns = false; // Set the styles for the DataGrid. ItemsGrid.HeaderStyle.BackColor = System.Drawing.Color.FromArgb(0x0000aaaa); // Create the columns for the DataGrid control. The DataGrid // columns are dynamically generated. Therefore, the columns // must be re-created each time the page is refreshed. // Create and add the columns to the collection. ItemsGrid.Columns.Add(CreateBoundColumn("IntegerValue", "Item")); ItemsGrid.Columns.Add( CreateBoundColumn("StringValue", "Description")); ItemsGrid.Columns.Add( CreateBoundColumn("CurrencyValue", "Price", "{0:c}", HorizontalAlign.Right)); ItemsGrid.Columns.Add( CreateLinkColumn("http://www.microsoft.com", "_self", "Microsoft", "Related link")); // Specify the data source and bind it to the control. ItemsGrid.DataSource = CreateDataSource(); ItemsGrid.DataBind(); // Add the DataGrid control to the Controls collection of // the PlaceHolder control. Place.Controls.Add(ItemsGrid); } BoundColumn CreateBoundColumn(String DataFieldValue, String HeaderTextValue) { // This version of the CreateBoundColumn method sets only the // DataField and HeaderText properties. // Create a BoundColumn. BoundColumn column = new BoundColumn(); // Set the properties of the BoundColumn. column.DataField = DataFieldValue; column.HeaderText = HeaderTextValue; return column; } BoundColumn CreateBoundColumn(String DataFieldValue, String HeaderTextValue, String FormatValue, HorizontalAlign AlignValue) { // This version of CreateBoundColumn method sets the DataField , // HeaderText, and DataFormatString properties. It also sets the // HorizontalAlign property of the ItemStyle property of the column. // Create a BoundColumn using the overloaded CreateBoundColumn method. BoundColumn column = CreateBoundColumn(DataFieldValue, HeaderTextValue); // Set the properties of the BoundColumn. column.DataFormatString = FormatValue; column.ItemStyle.HorizontalAlign = AlignValue; return column; } HyperLinkColumn CreateLinkColumn(String NavUrlValue, String TargetValue, String TextValue, String HeaderTextValue) { // Create a BoundColumn. HyperLinkColumn column = new HyperLinkColumn(); // Set the properties of the ButtonColumn. column.NavigateUrl = NavUrlValue; column.Target = TargetValue; column.Text = TextValue; column.HeaderText = HeaderTextValue; return column; } </script> <body> <form runat=server> <h3>DataGrid Constructor Example</h3> <b>Product List</b> <asp:PlaceHolder id="Place" runat="server"/> </form> </body> </html>
継承階層System.Web.UI.WebControls.DataGridColumnCollection
スレッド セーフ
プラットフォーム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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
参照- DataGridColumnCollection クラスのページへのリンク
.gif)