Partager via


TemplateColumn Classe

Définition

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
TemplateColumn

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)

S’applique à

Voir aussi