TemplateColumn クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
列内のコントロールのレイアウトをカスタマイズすることができる DataGrid コントロールの列型を表します。
public ref class TemplateColumn : System::Web::UI::WebControls::DataGridColumn
public class TemplateColumn : System.Web.UI.WebControls.DataGridColumn
type TemplateColumn = class
inherit DataGridColumn
Public Class TemplateColumn
Inherits DataGridColumn
- 継承
例
次のコード例は、クラスを使用して、カスタム レイアウトを使用 TemplateColumn してコントロールに列を作成する DataGrid 方法を示しています。
<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<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>
<head runat="server">
<title>TemplateColumn Example</title>
</head>
<body>
<form id="form1" 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="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<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>
<head runat="server">
<title>TemplateColumn Example</title>
</head>
<body>
<form id="form1" 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>
注釈
コントロール内の TemplateColumn 列の種類を DataGrid 使用して、カスタマイズされたコントロール レイアウトを含む列を作成します。 見出しセクション、フッター セクション、列のアイテム セクションに対して、それぞれ 、FooterTemplateおよびItemTemplateプロパティを使用HeaderTemplateして、ユーザー設定の外観を指定できます。 また、プロパティを設定することで、編集中の項目をオブジェクトに表示する TemplateColumn 方法を EditItemTemplate 制御することもできます。
コンストラクター
TemplateColumn() |
TemplateColumn クラスの新しいインスタンスを初期化します。 |
プロパティ
DesignMode |
列がデザイン モードかどうかを示す値を取得します。 (継承元 DataGridColumn) |
EditItemTemplate |
TemplateColumn オブジェクトの編集対象として選択された項目を表示するときに使用するテンプレートを取得または設定します。 |
FooterStyle |
列のフッター セクションのスタイル プロパティを取得します。 (継承元 DataGridColumn) |
FooterTemplate |
TemplateColumn オブジェクトのフッター セクションを表示するときに使用するテンプレートを取得または設定します。 |
FooterText |
列のフッター セクションに表示されるテキストを取得または設定します。 (継承元 DataGridColumn) |
HeaderImageUrl |
列のヘッダー セクションに表示するイメージの位置を取得または設定します。 (継承元 DataGridColumn) |
HeaderStyle |
列のヘッダー セクションのスタイル プロパティを取得します。 (継承元 DataGridColumn) |
HeaderTemplate |
TemplateColumn オブジェクトの見出しセクションを表示するときに使用するテンプレートを取得または設定します。 |
HeaderText |
列のヘッダー セクションに表示されるテキストを取得または設定します。 (継承元 DataGridColumn) |
IsTrackingViewState |
DataGridColumn オブジェクトが状態を保存するようにマークされているかどうかを判断する値を取得します。 (継承元 DataGridColumn) |
ItemStyle |
列の項目セルのスタイル プロパティを取得します。 (継承元 DataGridColumn) |
ItemTemplate |
TemplateColumn オブジェクトのデータ項目を表示するときに使用するテンプレートを取得または設定します。 |
Owner |
列がメンバーとして含まれている DataGrid コントロールを取得します。 (継承元 DataGridColumn) |
SortExpression |
並べ替えのために列が選択された場合に、OnSortCommand(DataGridSortCommandEventArgs) メソッドに渡されるフィールドの名前または式を、取得または設定します。 (継承元 DataGridColumn) |
ViewState |
StateBag クラスから派生した列がそのプロパティを格納できるようにする DataGridColumn オブジェクトを取得します。 (継承元 DataGridColumn) |
Visible |
DataGrid コントロールに列を表示するかどうかを示す値を取得または設定します。 (継承元 DataGridColumn) |
メソッド
Equals(Object) |
指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。 (継承元 Object) |
GetHashCode() |
既定のハッシュ関数として機能します。 (継承元 Object) |
GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
Initialize() |
DataGridColumn クラスから派生した列を初期状態にリセットする基本実装を提供します。 (継承元 DataGridColumn) |
InitializeCell(TableCell, Int32, ListItemType) |
TableCell オブジェクトの基本クラスを呼び出してインスタンスを初期化した後、ListItemType をセルに適用します。 |
LoadViewState(Object) |
DataGridColumn オブジェクトの状態を読み込みます。 (継承元 DataGridColumn) |
MemberwiseClone() |
現在の Object の簡易コピーを作成します。 (継承元 Object) |
OnColumnChanged() |
OnColumnsChanged() メソッドを呼び出します。 (継承元 DataGridColumn) |
SaveViewState() |
DataGridColumn オブジェクトの現在の状態を保存します。 (継承元 DataGridColumn) |
ToString() |
列の文字列形式を返します。 (継承元 DataGridColumn) |
TrackViewState() |
サーバー コントロールにビューステートの変更を追跡させ、サーバー コントロールの StateBag オブジェクトに変更を格納できるようにします。 (継承元 DataGridColumn) |
明示的なインターフェイスの実装
IStateManager.IsTrackingViewState |
列がビューステートの変化を追跡しているかどうかを示す値を取得します。 (継承元 DataGridColumn) |
IStateManager.LoadViewState(Object) |
以前に保存した状態を読み込みます。 (継承元 DataGridColumn) |
IStateManager.SaveViewState() |
状態の変化を示すオブジェクトを返します。 (継承元 DataGridColumn) |
IStateManager.TrackViewState() |
状態変化の追跡を開始します。 (継承元 DataGridColumn) |