TemplateColumn Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt einen Spaltentyp für das DataGrid-Steuerelement dar, der Ihnen das Anpassen des Layouts von Steuerelementen in der Spalte ermöglicht.
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
- Vererbung
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie Sie mithilfe der TemplateColumn Klasse eine Spalte im DataGrid Steuerelement mit einem benutzerdefinierten Layout erstellen.
<%@ 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>
Hinweise
Verwenden Sie den TemplateColumn Spaltentyp in einem DataGrid Steuerelement, um eine Spalte mit einem angepassten Steuerelementlayout zu erstellen. Sie können eine benutzerdefinierte Darstellung für die Kopfzeilenbereich, der Fußzeilenbereich enthält, und die Elemente der Spalte bereitstellen, mit der HeaderTemplate, FooterTemplate, und ItemTemplate Eigenschaften bzw. Sie können auch steuern, wie ein bearbeitetes Element im TemplateColumn Objekt angezeigt wird, indem Sie die EditItemTemplate Eigenschaft festlegen.
Konstruktoren
TemplateColumn() |
Initialisiert eine neue Instanz der TemplateColumn-Klasse. |
Eigenschaften
DesignMode |
Ruft einen Wert ab, der angibt, ob sich die Spalte im Entwurfsmodus befindet. (Geerbt von DataGridColumn) |
EditItemTemplate |
Ruft die Vorlage ab, mit der das zur Bearbeitung ausgewählte Element in einem TemplateColumn-Objekt angezeigt werden soll, oder legt diese fest. |
FooterStyle |
Ruft die Formatierungseigenschaften für den Fußzeilenbereich der Spalte ab. (Geerbt von DataGridColumn) |
FooterTemplate |
Ruft die Vorlage zum Anzeigen des Fußzeilenbereichs des TemplateColumn-Objekts ab oder legt diese fest. |
FooterText |
Ruft den im Fußzeilenbereich der Spalte angezeigten Text ab oder legt diesen fest. (Geerbt von DataGridColumn) |
HeaderImageUrl |
Ruft den Speicherort eines Bilds ab, das im Headerbereich der Spalte angezeigt werden soll, oder legt diesen fest. (Geerbt von DataGridColumn) |
HeaderStyle |
Ruft die Formatierungseigenschaften für den Headerbereich der Spalte ab. (Geerbt von DataGridColumn) |
HeaderTemplate |
Ruft die Vorlage zum Anzeigen des Headerbereichs des TemplateColumn-Objekts ab oder legt diese fest. |
HeaderText |
Ruft den im Headerbereich der Spalte angezeigten Text ab oder legt diesen fest. (Geerbt von DataGridColumn) |
IsTrackingViewState |
Ruft einen Wert ab, der bestimmt, ob das DataGridColumn-Objekt markiert wird, um seinen Zustand zu speichern. (Geerbt von DataGridColumn) |
ItemStyle |
Ruft die Formatierungseigenschaften für die einzelnen Zellen der Spalte ab. (Geerbt von DataGridColumn) |
ItemTemplate |
Ruft die Vorlage zum Anzeigen eines Datenelements in einer TemplateColumn ab oder legt diese fest. |
Owner |
Ruft das DataGrid-Steuerelement ab, zu dessen Membern die Spalte gehört. (Geerbt von DataGridColumn) |
SortExpression |
Ruft den Namen des Felds oder Ausdrucks ab, der an die OnSortCommand(DataGridSortCommandEventArgs)-Methode übergeben wird, wenn eine Spalte für die Sortierung ausgewählt wurde, oder legt diesen fest. (Geerbt von DataGridColumn) |
ViewState |
Ruft das StateBag-Objekt ab, wodurch einer von der DataGridColumn-Klasse abgeleiteten Spalte ermöglicht wird, ihre Eigenschaften zu speichern. (Geerbt von DataGridColumn) |
Visible |
Ruft einen Wert ab, der angibt, ob die Spalte im DataGrid-Steuerelement sichtbar ist, oder legt diesen fest. (Geerbt von DataGridColumn) |
Methoden
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
Initialize() |
Stellt die Basisimplementierung bereit, mit der eine aus der DataGridColumn-Klasse abgeleitete Spalte in ihren Ausgangszustand zurückgesetzt werden kann. (Geerbt von DataGridColumn) |
InitializeCell(TableCell, Int32, ListItemType) |
Ruft die Basisklasse eines TableCell-Objekts auf, um die Instanz zu initialisieren, und wendet dann einen ListItemType auf die Zelle an. |
LoadViewState(Object) |
Lädt den Zustand des DataGridColumn-Objekts. (Geerbt von DataGridColumn) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
OnColumnChanged() |
Aufruf der OnColumnsChanged()-Methode. (Geerbt von DataGridColumn) |
SaveViewState() |
Speichert den aktuellen Zustand des DataGridColumn-Objekts. (Geerbt von DataGridColumn) |
ToString() |
Gibt die Zeichenfolgendarstellung der Spalte zurück. (Geerbt von DataGridColumn) |
TrackViewState() |
Veranlasst die Überwachung von Änderungen am Ansichtszustand des Serversteuerelements, sodass die Änderungen im StateBag-Objekt des Serversteuerelements gespeichert werden können. (Geerbt von DataGridColumn) |
Explizite Schnittstellenimplementierungen
IStateManager.IsTrackingViewState |
Ruft einen Wert ab, der angibt, ob die Spalte Änderungen des Ansichtszustands nachverfolgt. (Geerbt von DataGridColumn) |
IStateManager.LoadViewState(Object) |
Lädt den früher gespeicherten Zustand. (Geerbt von DataGridColumn) |
IStateManager.SaveViewState() |
Gibt ein Objekt zurück, das Zustandsänderungen enthält. (Geerbt von DataGridColumn) |
IStateManager.TrackViewState() |
Startet das Verfolgen von Zustandsänderungen. (Geerbt von DataGridColumn) |