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 컨트롤을 사용자 지정된 컨트롤 레이아웃을 사용 하 여 열을 만듭니다. 사용 하 여 머리글 구역을, 바닥글 섹션 및 열의 항목 섹션에 대 한 사용자 지정 모양을 제공할 수 있습니다 합니다 HeaderTemplate, FooterTemplate, 및 ItemTemplate 속성을 각각. 편집 중인 항목에 표시 되는 방식을 제어할 수도 있습니다는 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) |