TemplateColumn Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Representerar en kolumntyp för kontrollen DataGrid som gör att du kan anpassa layouten för kontroller i kolumnen.
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
- Arv
Exempel
I följande kodexempel visas hur du använder TemplateColumn klassen för att skapa en kolumn i DataGrid kontrollen med en anpassad layout.
<%@ 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>
Kommentarer
TemplateColumn Använd kolumntypen i en DataGrid kontroll för att skapa en kolumn med en anpassad kontrolllayout. Du kan ange ett anpassat utseende för rubrikavsnittet, sidfotsavsnittet och elementavsnittet i kolumnen med hjälp HeaderTemplateav egenskaperna , FooterTemplaterespektive ItemTemplate . Du kan också styra hur ett objekt som redigeras visas i TemplateColumn objektet genom att ange egenskapen EditItemTemplate .
Konstruktorer
| Name | Description |
|---|---|
| TemplateColumn() |
Initierar en ny instans av TemplateColumn klassen. |
Egenskaper
| Name | Description |
|---|---|
| DesignMode |
Hämtar ett värde som anger om kolumnen är i designläge. (Ärvd från DataGridColumn) |
| EditItemTemplate |
Hämtar eller anger mallen för att visa det objekt som valts för redigering i ett TemplateColumn objekt. |
| FooterStyle |
Hämtar formategenskaperna för sidfotsavsnittet i kolumnen. (Ärvd från DataGridColumn) |
| FooterTemplate |
Hämtar eller anger mallen för att visa sidfotsavsnittet i TemplateColumn objektet. |
| FooterText |
Hämtar eller anger texten som visas i sidfotsavsnittet i kolumnen. (Ärvd från DataGridColumn) |
| HeaderImageUrl |
Hämtar eller anger platsen för en bild som ska visas i rubrikavsnittet i kolumnen. (Ärvd från DataGridColumn) |
| HeaderStyle |
Hämtar formategenskaperna för rubrikavsnittet i kolumnen. (Ärvd från DataGridColumn) |
| HeaderTemplate |
Hämtar eller anger mallen för att visa rubrikavsnittet i TemplateColumn objektet. |
| HeaderText |
Hämtar eller anger texten som visas i rubrikavsnittet i kolumnen. (Ärvd från DataGridColumn) |
| IsTrackingViewState |
Hämtar ett värde som avgör om DataGridColumn objektet är markerat för att spara dess tillstånd. (Ärvd från DataGridColumn) |
| ItemStyle |
Hämtar formategenskaperna för objektcellerna i kolumnen. (Ärvd från DataGridColumn) |
| ItemTemplate |
Hämtar eller anger mallen för att visa ett dataobjekt i ett TemplateColumn objekt. |
| Owner |
Hämtar kontrollen DataGrid som kolumnen är medlem i. (Ärvd från DataGridColumn) |
| SortExpression |
Hämtar eller anger namnet på fältet eller uttrycket som ska skickas till OnSortCommand(DataGridSortCommandEventArgs) metoden när en kolumn har valts för sortering. (Ärvd från DataGridColumn) |
| ViewState |
Hämtar objektet StateBag som tillåter att en kolumn som härleds DataGridColumn från klassen lagrar dess egenskaper. (Ärvd från DataGridColumn) |
| Visible |
Hämtar eller anger ett värde som anger om kolumnen visas i DataGrid kontrollen. (Ärvd från DataGridColumn) |
Metoder
| Name | Description |
|---|---|
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| Initialize() |
Tillhandahåller basimplementeringen för att återställa en kolumn som härletts DataGridColumn från klassen till dess ursprungliga tillstånd. (Ärvd från DataGridColumn) |
| InitializeCell(TableCell, Int32, ListItemType) |
Anropar ett TableCell objekts basklass för att initiera instansen och tillämpar sedan en ListItemType på cellen. |
| LoadViewState(Object) |
Läser in objektets DataGridColumn tillstånd. (Ärvd från DataGridColumn) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| OnColumnChanged() |
Anropar metoden OnColumnsChanged(). (Ärvd från DataGridColumn) |
| SaveViewState() |
Sparar objektets aktuella tillstånd DataGridColumn . (Ärvd från DataGridColumn) |
| ToString() |
Returnerar strängrepresentationen av kolumnen. (Ärvd från DataGridColumn) |
| TrackViewState() |
Orsakar spårning av visningstillståndsändringar i serverkontrollen så att de kan lagras i serverkontrollens StateBag objekt. (Ärvd från DataGridColumn) |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| IStateManager.IsTrackingViewState |
Hämtar ett värde som anger om kolumnen spårar visningstillståndsändringar. (Ärvd från DataGridColumn) |
| IStateManager.LoadViewState(Object) |
Läser in tidigare sparat tillstånd. (Ärvd från DataGridColumn) |
| IStateManager.SaveViewState() |
Returnerar ett objekt som innehåller tillståndsändringar. (Ärvd från DataGridColumn) |
| IStateManager.TrackViewState() |
Börjar spåra tillståndsändringar. (Ärvd från DataGridColumn) |