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, mit dem Sie das Layout von Steuerelementen in der Spalte anpassen können.
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 die TemplateColumn Klasse zum Erstellen einer Spalte im DataGrid Steuerelement mit einem benutzerdefinierten Layout verwendet wird.
<%@ 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 ein benutzerdefiniertes Erscheinungsbild für den Überschriftenabschnitt, den Fußzeilenabschnitt und den Elementabschnitt der Spalte bereitstellen, indem Sie die Eigenschaften , FooterTemplatebzwItemTemplate. die HeaderTemplateEigenschaften verwenden. Sie können auch steuern, wie ein bearbeitetes Element im TemplateColumn Objekt angezeigt wird, indem Sie die EditItemTemplate Eigenschaft festlegen.
Konstruktoren
| Name | Beschreibung |
|---|---|
| TemplateColumn() |
Initialisiert eine neue Instanz der TemplateColumn-Klasse. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| DesignMode |
Ruft einen Wert ab, der angibt, ob sich die Spalte im Entwurfsmodus befindet. (Geerbt von DataGridColumn) |
| EditItemTemplate |
Dient zum Abrufen oder Festlegen der Vorlage zum Anzeigen des elements, das für die Bearbeitung in einem TemplateColumn Objekt ausgewählt ist. |
| FooterStyle |
Ruft die Formatvorlageneigenschaften für den Fußzeilenabschnitt der Spalte ab. (Geerbt von DataGridColumn) |
| FooterTemplate |
Dient zum Abrufen oder Festlegen der Vorlage zum Anzeigen des Fußzeilenabschnitts des TemplateColumn Objekts. |
| FooterText |
Dient zum Abrufen oder Festlegen des Texts, der im Fußzeilenabschnitt der Spalte angezeigt wird. (Geerbt von DataGridColumn) |
| HeaderImageUrl |
Dient zum Abrufen oder Festlegen der Position eines Bilds, das im Kopfzeilenabschnitt der Spalte angezeigt werden soll. (Geerbt von DataGridColumn) |
| HeaderStyle |
Ruft die Formatvorlageneigenschaften für den Kopfzeilenabschnitt der Spalte ab. (Geerbt von DataGridColumn) |
| HeaderTemplate |
Dient zum Abrufen oder Festlegen der Vorlage zum Anzeigen des Überschriftenabschnitts des TemplateColumn Objekts. |
| HeaderText |
Dient zum Abrufen oder Festlegen des Texts, der im Kopfzeilenabschnitt der Spalte angezeigt wird. (Geerbt von DataGridColumn) |
| IsTrackingViewState |
Ruft einen Wert ab, der bestimmt, ob das DataGridColumn Objekt zum Speichern des Zustands markiert ist. (Geerbt von DataGridColumn) |
| ItemStyle |
Ruft die Formatvorlageneigenschaften für die Elementzellen der Spalte ab. (Geerbt von DataGridColumn) |
| ItemTemplate |
Dient zum Abrufen oder Festlegen der Vorlage zum Anzeigen eines Datenelements in einem TemplateColumn Objekt. |
| Owner |
Ruft das DataGrid Steuerelement ab, bei dem es sich bei der Spalte um ein Element handelt. (Geerbt von DataGridColumn) |
| SortExpression |
Dient zum Abrufen oder Festlegen des Namens des Felds oder Ausdrucks, das an die Methode übergeben werden soll, wenn eine Spalte für die OnSortCommand(DataGridSortCommandEventArgs) Sortierung ausgewählt ist. (Geerbt von DataGridColumn) |
| ViewState |
Ruft das StateBag Objekt ab, das eine von der DataGridColumn Klasse abgeleitete Spalte zum Speichern seiner Eigenschaften zulässt. (Geerbt von DataGridColumn) |
| Visible |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die Spalte im DataGrid Steuerelement sichtbar ist. (Geerbt von DataGridColumn) |
Methoden
| Name | Beschreibung |
|---|---|
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| Initialize() |
Stellt die Basisimplementierung bereit, um eine von der DataGridColumn Klasse abgeleitete Spalte auf den Anfangszustand zurückzusetzen. (Geerbt von DataGridColumn) |
| InitializeCell(TableCell, Int32, ListItemType) |
Ruft die Basisklasse eines TableCell Objekts auf, um die Instanz zu initialisieren, und wendet dann eine ListItemType auf die Zelle an. |
| LoadViewState(Object) |
Lädt den Zustand des DataGridColumn Objekts. (Geerbt von DataGridColumn) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| OnColumnChanged() |
Ruft die OnColumnsChanged() Methode auf. (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() |
Bewirkt die Nachverfolgung von Ansichtszustandsänderungen am Serversteuerelement, sodass sie im Objekt des Serversteuerelements StateBag gespeichert werden können. (Geerbt von DataGridColumn) |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| IStateManager.IsTrackingViewState |
Ruft einen Wert ab, der angibt, ob die Spalte Ansichtszustandsänderungen nachverfolgt. (Geerbt von DataGridColumn) |
| IStateManager.LoadViewState(Object) |
Lädt den zuvor gespeicherten Zustand. (Geerbt von DataGridColumn) |
| IStateManager.SaveViewState() |
Gibt ein Objekt zurück, das Zustandsänderungen enthält. (Geerbt von DataGridColumn) |
| IStateManager.TrackViewState() |
Beginnt mit der Nachverfolgung von Zustandsänderungen. (Geerbt von DataGridColumn) |