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


DataGrid コントロールで TemplateColumn 列型を使用して、カスタマイズしたコントロールのレイアウトで列を作成します。HeaderTemplate、FooterTemplate、ItemTemplate の各プロパティをそれぞれ使用して、列の見出しセクション、フッター セクション、および項目セクションの外観をカスタマイズできます。EditItemTemplate プロパティを設定して、編集対象項目を TemplateColumn オブジェクトに表示する方法を制御することもできます。

TemplateColumn クラスを使用して、カスタム レイアウトの DataGrid コントロールに列を作成する方法を次のコード例に示します。
<%@ Page Language="VB" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <script runat="server"> Private Store As DataTable = New DataTable() Private StoreView As DataView Sub Page_Load(sender As Object, e As EventArgs) If IsNothing(Session("StoreData")) Then Dim dr As DataRow Dim i As Integer Store = New DataTable() Store.Columns.Add(New DataColumn("Tax", GetType(String))) Store.Columns.Add(New DataColumn("Item", GetType(String))) Store.Columns.Add(New DataColumn("Price", GetType(String))) Session("StoreData") = Store ' Create sample data. For i = 1 to 4 dr = Store.NewRow() dr(0) = "0.0%" dr(1) = "Item " & i.ToString() dr(2) = (1.23 * (i + 1)).ToString() Store.Rows.Add(dr) Next i Else Store = Session("StoreData") End If StoreView = New DataView(Store) StoreView.Sort="Item" If Not IsPostBack Then BindGrid() End If End Sub Sub MyDataGrid_Edit(sender As Object, e As DataGridCommandEventArgs) MyDataGrid.EditItemIndex = e.Item.ItemIndex BindGrid() End Sub Sub MyDataGrid_Cancel(sender As Object, e As DataGridCommandEventArgs) MyDataGrid.EditItemIndex = -1 BindGrid() End Sub Sub MyDataGrid_Update(sender As Object, e As DataGridCommandEventArgs) ' Get the text box that contains the price to edit. ' For bound columns the edited value is stored in a text box. ' The text box is the first control in the Controls collection. Dim priceText As TextBox = e.Item.Cells(3).Controls(0) ' Get the check box that indicates whether to include tax from the ' TemplateColumn. Notice that in this case, the check box control is ' second control in the Controls collection. Dim taxCheck As CheckBox = e.Item.Cells(2).Controls(1) Dim item As String = e.Item.Cells(1).Text Dim price As String = priceText.Text Dim dr As DataRow ' With a database, use an update command. Since the data source is ' an in-memory DataTable, delete the old row and replace it with a new one. ' Remove old entry. StoreView.RowFilter = "Item='" & item & "'" If StoreView.Count > 0 Then StoreView.Delete(0) End If StoreView.RowFilter = "" ' Add new entry. dr = Store.NewRow() If taxCheck.Checked Then dr(0) = "8.6%" Else dr(0) = "0.0%" End If dr(1) = item dr(2) = price Store.Rows.Add(dr) MyDataGrid.EditItemIndex = -1 BindGrid() End Sub Sub BindGrid() MyDataGrid.DataSource = StoreView MyDataGrid.DataBind() End Sub </script> <body> <form runat="server"> <h3>TemplateColumn Example</h3> <asp:DataGrid id="MyDataGrid" runat="server" BorderColor="black" CellPadding="2" OnEditCommand="MyDataGrid_Edit" OnCancelCommand="MyDataGrid_Cancel" OnUpdateCommand="MyDataGrid_Update" ShowFooter="True" AutoGenerateColumns="false"> <Columns> <asp:EditCommandColumn EditText="Edit" CancelText="Cancel" UpdateText="Update" ItemStyle-Wrap="false" HeaderText="Edit Controls"/> <asp:BoundColumn HeaderText="Description" ReadOnly="true" DataField="Item"/> <asp:TemplateColumn> <HeaderTemplate> <b> Tax </b> </HeaderTemplate> <ItemTemplate> <asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "Tax") %>' runat="server"/> </ItemTemplate> <EditItemTemplate> <asp:CheckBox Text="Taxable" runat="server"/> </EditItemTemplate> <FooterTemplate> <asp:HyperLink id="HyperLink1" Text="Microsoft" NavigateUrl="http://www.microsoft.com" runat="server"/> </FooterTemplate> </asp:TemplateColumn> <asp:BoundColumn HeaderText="Price" DataField="Price"/> </Columns> </asp:DataGrid> </form> </body> </html>
<%@ Page Language="C#" AutoEventWireup="True" %> <%@ Import Namespace="System.Data" %> <html> <script runat="server"> DataTable Store = new DataTable(); DataView StoreView; void Page_Load(Object sender, EventArgs e) { if(Session["StoreData"] == null) { DataRow dr; Store = new DataTable(); Store.Columns.Add(new DataColumn("Tax", typeof(String))); Store.Columns.Add(new DataColumn("Item", typeof(String))); Store.Columns.Add(new DataColumn("Price", typeof(String))); Session["StoreData"] = Store; // Create sample data. for (int i = 1; i <= 4; i++) { dr = Store.NewRow(); dr[0] = "0.0%"; dr[1] = "Item " + i.ToString(); dr[2] = (1.23 * (i + 1)).ToString(); Store.Rows.Add(dr); } } else Store = (DataTable)Session["StoreData"]; StoreView = new DataView(Store); StoreView.Sort="Item"; if(!IsPostBack) BindGrid(); } void MyDataGrid_Edit(Object sender, DataGridCommandEventArgs e) { MyDataGrid.EditItemIndex = e.Item.ItemIndex; BindGrid(); } void MyDataGrid_Cancel(Object sender, DataGridCommandEventArgs e) { MyDataGrid.EditItemIndex = -1; BindGrid(); } void MyDataGrid_Update(Object sender, DataGridCommandEventArgs e) { // Get the text box that contains the price to edit. // For bound columns the edited value is stored in a text box. // The text box is the first control in the Controls collection. TextBox priceText = (TextBox)e.Item.Cells[3].Controls[0]; // Get the check box that indicates whether to include tax from the // TemplateColumn. Notice that in this case, the check box control is // second control in the Controls collection. CheckBox taxCheck = (CheckBox)e.Item.Cells[2].Controls[1]; String item = e.Item.Cells[1].Text; String price = priceText.Text; DataRow dr; // With a database, use an update command. Since the data source is // an in-memory DataTable, delete the old row and replace it with a new one. // Remove old entry. StoreView.RowFilter = "Item='" + item + "'"; if (StoreView.Count > 0) StoreView.Delete(0); StoreView.RowFilter = ""; // Add new entry. dr = Store.NewRow(); if (taxCheck.Checked) dr[0] = "8.6%"; else dr[0] = "0.0%"; dr[1] = item; dr[2] = price; Store.Rows.Add(dr); MyDataGrid.EditItemIndex = -1; BindGrid(); } void BindGrid() { MyDataGrid.DataSource = StoreView; MyDataGrid.DataBind(); } </script> <body> <form runat="server"> <h3>TemplateColumn Example</h3> <asp:DataGrid id="MyDataGrid" runat="server" BorderColor="black" CellPadding="2" OnEditCommand="MyDataGrid_Edit" OnCancelCommand="MyDataGrid_Cancel" OnUpdateCommand="MyDataGrid_Update" ShowFooter="True" AutoGenerateColumns="false"> <Columns> <asp:EditCommandColumn EditText="Edit" CancelText="Cancel" UpdateText="Update" ItemStyle-Wrap="false" HeaderText="Edit Controls"/> <asp:BoundColumn HeaderText="Description" ReadOnly="true" DataField="Item"/> <asp:TemplateColumn> <HeaderTemplate> <b> Tax </b> </HeaderTemplate> <ItemTemplate> <asp:Label Text='<%# DataBinder.Eval(Container.DataItem, "Tax") %>' runat="server"/> </ItemTemplate> <EditItemTemplate> <asp:CheckBox Text="Taxable" runat="server"/> </EditItemTemplate> <FooterTemplate> <asp:HyperLink id="HyperLink1" Text="Microsoft" NavigateUrl="http://www.microsoft.com" runat="server"/> </FooterTemplate> </asp:TemplateColumn> <asp:BoundColumn HeaderText="Price" DataField="Price"/> </Columns> </asp:DataGrid> </form> </body> </html>


System.Web.UI.WebControls.DataGridColumn
System.Web.UI.WebControls.TemplateColumn


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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


TemplateColumn コンストラクタ
アセンブリ: System.Web (system.web.dll 内)



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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


TemplateColumn プロパティ

名前 | 説明 | |
---|---|---|
![]() | EditItemTemplate | TemplateColumn オブジェクトの編集対象として選択された項目を表示するときに使用するテンプレートを取得または設定します。 |
![]() | FooterStyle | 列のフッター セクションのスタイル プロパティを取得します。 ( DataGridColumn から継承されます。) |
![]() | FooterTemplate | TemplateColumn オブジェクトのフッター セクションを表示するときに使用するテンプレートを取得または設定します。 |
![]() | FooterText | 列のフッター セクションに表示されるテキストを取得または設定します。 ( DataGridColumn から継承されます。) |
![]() | HeaderImageUrl | 列のヘッダー セクションに表示するイメージの位置を取得または設定します。 ( DataGridColumn から継承されます。) |
![]() | HeaderStyle | 列のヘッダー セクションのスタイル プロパティを取得します。 ( DataGridColumn から継承されます。) |
![]() | HeaderTemplate | TemplateColumn オブジェクトの見出しセクションを表示するときに使用するテンプレートを取得または設定します。 |
![]() | HeaderText | 列のヘッダー セクションに表示されるテキストを取得または設定します。 ( DataGridColumn から継承されます。) |
![]() | ItemStyle | 列の項目セルのスタイル プロパティを取得します。 ( DataGridColumn から継承されます。) |
![]() | ItemTemplate | TemplateColumn オブジェクトのデータ項目を表示するときに使用するテンプレートを取得または設定します。 |
![]() | SortExpression | 並べ替えのために列が選択された場合に、OnSortCommand メソッドに渡されるフィールドの名前または式を、取得または設定します。 ( DataGridColumn から継承されます。) |
![]() | Visible | DataGrid コントロールに列を表示するかどうかを示す値を取得または設定します。 ( DataGridColumn から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | DesignMode | 列がデザイン モードかどうかを示す値を取得します。 ( DataGridColumn から継承されます。) |
![]() | IsTrackingViewState | DataGridColumn オブジェクトが状態を保存するようにマークされているかどうかを判断する値を取得します。 ( DataGridColumn から継承されます。) |
![]() | Owner | 列がメンバとして含まれている DataGrid コントロールを取得します。 ( DataGridColumn から継承されます。) |
![]() | ViewState | DataGridColumn クラスから派生した列がそのプロパティを格納できるようにする System.Web.UI.StateBag オブジェクトを取得します。 ( DataGridColumn から継承されます。) |

TemplateColumn メソッド

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | Initialize | DataGridColumn クラスから派生した列をその初期状態にリセットする基本の実装を提供します。 ( DataGridColumn から継承されます。) |
![]() | InitializeCell | オーバーライドされます。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 列の文字列形式を返します。 ( DataGridColumn から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | LoadViewState | DataGridColumn オブジェクトの状態を読み込みます。 ( DataGridColumn から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |
![]() | OnColumnChanged | DataGridDesigner.OnColumnsChanged メソッドを呼び出します。 ( DataGridColumn から継承されます。) |
![]() | SaveViewState | DataGridColumn オブジェクトの現在の状態を保存します。 ( DataGridColumn から継承されます。) |
![]() | TrackViewState | サーバー コントロールにビューステートの変更を追跡させ、サーバー コントロールの System.Web.UI.StateBag オブジェクトに変更を格納できるようにします。 ( DataGridColumn から継承されます。) |

TemplateColumn メンバ
列内のコントロールのレイアウトをカスタマイズできるようにする、DataGrid コントロールの列型を表します。
TemplateColumn データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | EditItemTemplate | TemplateColumn オブジェクトの編集対象として選択された項目を表示するときに使用するテンプレートを取得または設定します。 |
![]() | FooterStyle | 列のフッター セクションのスタイル プロパティを取得します。(DataGridColumn から継承されます。) |
![]() | FooterTemplate | TemplateColumn オブジェクトのフッター セクションを表示するときに使用するテンプレートを取得または設定します。 |
![]() | FooterText | 列のフッター セクションに表示されるテキストを取得または設定します。(DataGridColumn から継承されます。) |
![]() | HeaderImageUrl | 列のヘッダー セクションに表示するイメージの位置を取得または設定します。(DataGridColumn から継承されます。) |
![]() | HeaderStyle | 列のヘッダー セクションのスタイル プロパティを取得します。(DataGridColumn から継承されます。) |
![]() | HeaderTemplate | TemplateColumn オブジェクトの見出しセクションを表示するときに使用するテンプレートを取得または設定します。 |
![]() | HeaderText | 列のヘッダー セクションに表示されるテキストを取得または設定します。(DataGridColumn から継承されます。) |
![]() | ItemStyle | 列の項目セルのスタイル プロパティを取得します。(DataGridColumn から継承されます。) |
![]() | ItemTemplate | TemplateColumn オブジェクトのデータ項目を表示するときに使用するテンプレートを取得または設定します。 |
![]() | SortExpression | 並べ替えのために列が選択された場合に、OnSortCommand メソッドに渡されるフィールドの名前または式を、取得または設定します。(DataGridColumn から継承されます。) |
![]() | Visible | DataGrid コントロールに列を表示するかどうかを示す値を取得または設定します。(DataGridColumn から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | DesignMode | 列がデザイン モードかどうかを示す値を取得します。(DataGridColumn から継承されます。) |
![]() | IsTrackingViewState | DataGridColumn オブジェクトが状態を保存するようにマークされているかどうかを判断する値を取得します。(DataGridColumn から継承されます。) |
![]() | Owner | 列がメンバとして含まれている DataGrid コントロールを取得します。(DataGridColumn から継承されます。) |
![]() | ViewState | DataGridColumn クラスから派生した列がそのプロパティを格納できるようにする System.Web.UI.StateBag オブジェクトを取得します。(DataGridColumn から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | Initialize | DataGridColumn クラスから派生した列をその初期状態にリセットする基本の実装を提供します。 (DataGridColumn から継承されます。) |
![]() | InitializeCell | オーバーライドされます。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 列の文字列形式を返します。 (DataGridColumn から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | LoadViewState | DataGridColumn オブジェクトの状態を読み込みます。 (DataGridColumn から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |
![]() | OnColumnChanged | DataGridDesigner.OnColumnsChanged メソッドを呼び出します。 (DataGridColumn から継承されます。) |
![]() | SaveViewState | DataGridColumn オブジェクトの現在の状態を保存します。 (DataGridColumn から継承されます。) |
![]() | TrackViewState | サーバー コントロールにビューステートの変更を追跡させ、サーバー コントロールの System.Web.UI.StateBag オブジェクトに変更を格納できるようにします。 (DataGridColumn から継承されます。) |

- TemplateColumnのページへのリンク