TemplateColumn Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mewakili tipe kolom untuk DataGrid kontrol yang memungkinkan Anda mengkustomisasi tata letak kontrol dalam kolom.
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
- Warisan
Contoh
Contoh kode berikut menunjukkan cara menggunakan TemplateColumn kelas untuk membuat kolom di DataGrid kontrol dengan tata letak kustom.
<%@ 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>
Keterangan
TemplateColumn Gunakan tipe kolom dalam DataGrid kontrol untuk membuat kolom dengan tata letak kontrol yang dikustomisasi. Anda dapat memberikan tampilan kustom untuk bagian judul, bagian footer, dan bagian item kolom dengan menggunakan HeaderTemplateproperti , FooterTemplate, dan ItemTemplate masing-masing. Anda juga dapat mengontrol bagaimana item yang sedang diedit ditampilkan di TemplateColumn objek dengan mengatur EditItemTemplate properti .
Konstruktor
| Nama | Deskripsi |
|---|---|
| TemplateColumn() |
Menginisialisasi instans baru dari kelas TemplateColumn. |
Properti
| Nama | Deskripsi |
|---|---|
| DesignMode |
Mendapatkan nilai yang menunjukkan apakah kolom berada dalam mode desain. (Diperoleh dari DataGridColumn) |
| EditItemTemplate |
Mendapatkan atau mengatur templat untuk menampilkan item yang dipilih untuk pengeditan dalam TemplateColumn objek. |
| FooterStyle |
Mendapatkan properti gaya untuk bagian footer kolom. (Diperoleh dari DataGridColumn) |
| FooterTemplate |
Mendapatkan atau mengatur templat untuk menampilkan bagian TemplateColumn footer objek. |
| FooterText |
Mendapatkan atau mengatur teks yang ditampilkan di bagian footer kolom. (Diperoleh dari DataGridColumn) |
| HeaderImageUrl |
Mendapatkan atau mengatur lokasi gambar untuk ditampilkan di bagian header kolom. (Diperoleh dari DataGridColumn) |
| HeaderStyle |
Mendapatkan properti gaya untuk bagian header kolom. (Diperoleh dari DataGridColumn) |
| HeaderTemplate |
Mendapatkan atau mengatur templat untuk menampilkan bagian TemplateColumn judul objek. |
| HeaderText |
Mendapatkan atau mengatur teks yang ditampilkan di bagian header kolom. (Diperoleh dari DataGridColumn) |
| IsTrackingViewState |
Mendapatkan nilai yang menentukan apakah DataGridColumn objek ditandai untuk menyimpan statusnya. (Diperoleh dari DataGridColumn) |
| ItemStyle |
Mendapatkan properti gaya untuk sel item kolom. (Diperoleh dari DataGridColumn) |
| ItemTemplate |
Mendapatkan atau mengatur templat untuk menampilkan item data dalam TemplateColumn objek. |
| Owner |
DataGrid Mendapatkan kontrol bahwa kolom adalah anggota. (Diperoleh dari DataGridColumn) |
| SortExpression |
Mendapatkan atau mengatur nama bidang atau ekspresi untuk diteruskan ke OnSortCommand(DataGridSortCommandEventArgs) metode saat kolom dipilih untuk pengurutan. (Diperoleh dari DataGridColumn) |
| ViewState |
StateBag Mendapatkan objek yang memungkinkan kolom yang berasal dari DataGridColumn kelas untuk menyimpan propertinya. (Diperoleh dari DataGridColumn) |
| Visible |
Mendapatkan atau mengatur nilai yang menunjukkan apakah kolom terlihat dalam DataGrid kontrol. (Diperoleh dari DataGridColumn) |
Metode
| Nama | Deskripsi |
|---|---|
| Equals(Object) |
Menentukan apakah objek yang ditentukan sama dengan objek saat ini. (Diperoleh dari Object) |
| GetHashCode() |
Berfungsi sebagai fungsi hash default. (Diperoleh dari Object) |
| GetType() |
Mendapatkan Type instans saat ini. (Diperoleh dari Object) |
| Initialize() |
Menyediakan implementasi dasar untuk mengatur ulang kolom yang berasal dari DataGridColumn kelas ke status awalnya. (Diperoleh dari DataGridColumn) |
| InitializeCell(TableCell, Int32, ListItemType) |
TableCell Memanggil kelas dasar objek untuk menginisialisasi instans ListItemType lalu menerapkan ke sel. |
| LoadViewState(Object) |
Memuat status DataGridColumn objek. (Diperoleh dari DataGridColumn) |
| MemberwiseClone() |
Membuat salinan dangkal dari Objectsaat ini. (Diperoleh dari Object) |
| OnColumnChanged() |
OnColumnsChanged() Memanggil metode . (Diperoleh dari DataGridColumn) |
| SaveViewState() |
Menyimpan status DataGridColumn objek saat ini. (Diperoleh dari DataGridColumn) |
| ToString() |
Mengembalikan representasi string kolom. (Diperoleh dari DataGridColumn) |
| TrackViewState() |
Menyebabkan pelacakan perubahan status tampilan pada kontrol server sehingga dapat disimpan di objek kontrol StateBag server. (Diperoleh dari DataGridColumn) |
Implementasi Antarmuka Eksplisit
| Nama | Deskripsi |
|---|---|
| IStateManager.IsTrackingViewState |
Mendapatkan nilai yang menunjukkan apakah kolom melacak perubahan status tampilan. (Diperoleh dari DataGridColumn) |
| IStateManager.LoadViewState(Object) |
Memuat status yang disimpan sebelumnya. (Diperoleh dari DataGridColumn) |
| IStateManager.SaveViewState() |
Mengembalikan objek yang berisi perubahan status. (Diperoleh dari DataGridColumn) |
| IStateManager.TrackViewState() |
Mulai melacak perubahan status. (Diperoleh dari DataGridColumn) |