TemplateColumn Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Représente un type de colonne pour le DataGrid contrôle qui vous permet de personnaliser la disposition des contrôles dans la colonne.
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
- Héritage
Exemples
L’exemple de code suivant montre comment utiliser la TemplateColumn classe pour créer une colonne dans le DataGrid contrôle avec une disposition personnalisée.
<%@ 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>
Remarques
Utilisez le TemplateColumn type de colonne dans un DataGrid contrôle pour créer une colonne avec une disposition de contrôle personnalisée. Vous pouvez fournir une apparence personnalisée pour la section de titre, la section pied de page et la section éléments de la colonne à l’aide des HeaderTemplateFooterTemplatepropriétés, respectivementItemTemplate. Vous pouvez également contrôler l’affichage d’un élément en cours de modification dans l’objet TemplateColumn en définissant la EditItemTemplate propriété.
Constructeurs
| Nom | Description |
|---|---|
| TemplateColumn() |
Initialise une nouvelle instance de la classe TemplateColumn. |
Propriétés
| Nom | Description |
|---|---|
| DesignMode |
Obtient une valeur qui indique si la colonne est en mode création. (Hérité de DataGridColumn) |
| EditItemTemplate |
Obtient ou définit le modèle permettant d’afficher l’élément sélectionné pour la modification dans un TemplateColumn objet. |
| FooterStyle |
Obtient les propriétés de style de la section pied de page de la colonne. (Hérité de DataGridColumn) |
| FooterTemplate |
Obtient ou définit le modèle pour afficher la section pied de page de l’objet TemplateColumn . |
| FooterText |
Obtient ou définit le texte affiché dans la section pied de page de la colonne. (Hérité de DataGridColumn) |
| HeaderImageUrl |
Obtient ou définit l’emplacement d’une image à afficher dans la section d’en-tête de la colonne. (Hérité de DataGridColumn) |
| HeaderStyle |
Obtient les propriétés de style de la section d’en-tête de la colonne. (Hérité de DataGridColumn) |
| HeaderTemplate |
Obtient ou définit le modèle pour afficher la section de titre de l’objet TemplateColumn . |
| HeaderText |
Obtient ou définit le texte affiché dans la section d’en-tête de la colonne. (Hérité de DataGridColumn) |
| IsTrackingViewState |
Obtient une valeur qui détermine si l’objet DataGridColumn est marqué pour enregistrer son état. (Hérité de DataGridColumn) |
| ItemStyle |
Obtient les propriétés de style pour les cellules d’élément de la colonne. (Hérité de DataGridColumn) |
| ItemTemplate |
Obtient ou définit le modèle pour l’affichage d’un élément de données dans un TemplateColumn objet. |
| Owner |
Obtient le DataGrid contrôle dont la colonne est membre. (Hérité de DataGridColumn) |
| SortExpression |
Obtient ou définit le nom du champ ou de l’expression à passer à la OnSortCommand(DataGridSortCommandEventArgs) méthode lorsqu’une colonne est sélectionnée pour le tri. (Hérité de DataGridColumn) |
| ViewState |
Obtient l’objet StateBag qui permet à une colonne dérivée de la DataGridColumn classe de stocker ses propriétés. (Hérité de DataGridColumn) |
| Visible |
Obtient ou définit une valeur qui indique si la colonne est visible dans le DataGrid contrôle. (Hérité de DataGridColumn) |
Méthodes
| Nom | Description |
|---|---|
| Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| Initialize() |
Fournit l’implémentation de base pour réinitialiser une colonne dérivée de la DataGridColumn classe à son état initial. (Hérité de DataGridColumn) |
| InitializeCell(TableCell, Int32, ListItemType) |
Appelle la classe de base d’un TableCell objet pour initialiser l’instance, puis applique une ListItemType cellule. |
| LoadViewState(Object) |
Charge l’état de l’objet DataGridColumn . (Hérité de DataGridColumn) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| OnColumnChanged() |
Appelle la OnColumnsChanged() méthode. (Hérité de DataGridColumn) |
| SaveViewState() |
Enregistre l’état actuel de l’objet DataGridColumn . (Hérité de DataGridColumn) |
| ToString() |
Retourne la représentation sous forme de chaîne de la colonne. (Hérité de DataGridColumn) |
| TrackViewState() |
Provoque le suivi des modifications d’état d’affichage apportées au contrôle serveur afin qu’ils puissent être stockés dans l’objet du StateBag contrôle serveur. (Hérité de DataGridColumn) |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| IStateManager.IsTrackingViewState |
Obtient une valeur qui indique si la colonne suit les modifications de l’état d’affichage. (Hérité de DataGridColumn) |
| IStateManager.LoadViewState(Object) |
Charge l’état précédemment enregistré. (Hérité de DataGridColumn) |
| IStateManager.SaveViewState() |
Retourne un objet contenant les modifications d’état. (Hérité de DataGridColumn) |
| IStateManager.TrackViewState() |
Démarre le suivi des modifications d’état. (Hérité de DataGridColumn) |