TemplateColumn Classe

Definizione

Rappresenta un tipo di colonna per il controllo DataGrid che consente di personalizzare il layout dei controlli nella colonna.Represents a column type for the DataGrid control that allows you to customize the layout of controls in the column.

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
Ereditarietà
TemplateColumn

Esempi

Nell'esempio di codice riportato di seguito viene illustrato TemplateColumn come utilizzare la classe per creare una DataGrid colonna nel controllo con un layout personalizzato.The following code example demonstrates how to use the TemplateColumn class to create a column in the DataGrid control with a custom 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>

Commenti

Usare il TemplateColumn tipo di colonna in DataGrid un controllo per creare una colonna con un layout di controllo personalizzato.Use the TemplateColumn column type in a DataGrid control to create a column with a customized control layout. È possibile fornire un aspetto personalizzato per la sezione di intestazione, la sezione del piè di pagina e la sezione Items della colonna usando HeaderTemplaterispettivamente FooterTemplatele proprietà ItemTemplate , e.You can provide a custom appearance for the heading section, the footer section, and the items section of the column by using the HeaderTemplate, FooterTemplate, and ItemTemplate properties, respectively. È inoltre possibile controllare la modalità di visualizzazione di un elemento modificato nell' TemplateColumn oggetto impostando la EditItemTemplate proprietà.You can also control how an item being edited is displayed in the TemplateColumn object by setting the EditItemTemplate property.

Costruttori

TemplateColumn()

Inizializza una nuova istanza della classe TemplateColumn.Initializes a new instance of the TemplateColumn class.

Proprietà

DesignMode

Ottiene un valore che indica se la colonna è in modalità progettazione.Gets a value that indicates whether the column is in design mode.

(Ereditato da DataGridColumn)
EditItemTemplate

Ottiene o imposta il modello per visualizzare l'elemento selezionato per la modifica in un oggetto TemplateColumn.Gets or sets the template for displaying the item selected for editing in a TemplateColumn object.

FooterStyle

Ottiene le proprietà di stile per la sezione del piè di pagina della colonna.Gets the style properties for the footer section of the column.

(Ereditato da DataGridColumn)
FooterTemplate

Ottiene o imposta il modello per visualizzare la sezione relativa al piè di pagina dell'oggetto TemplateColumn.Gets or sets the template for displaying the footer section of the TemplateColumn object.

FooterText

Ottiene o imposta il testo visualizzato nella sezione del piè di pagina della colonna.Gets or sets the text displayed in the footer section of the column.

(Ereditato da DataGridColumn)
HeaderImageUrl

Ottiene o imposta la posizione di un'immagine da visualizzare nella sezione di intestazione della colonna.Gets or sets the location of an image to display in the header section of the column.

(Ereditato da DataGridColumn)
HeaderStyle

Ottiene le proprietà di stile per la sezione di intestazione della colonna.Gets the style properties for the header section of the column.

(Ereditato da DataGridColumn)
HeaderTemplate

Ottiene o imposta il modello per visualizzare la sezione di intestazione dell'oggetto TemplateColumn.Gets or sets the template for displaying the heading section of the TemplateColumn object.

HeaderText

Ottiene o imposta il testo visualizzato nella sezione di intestazione della colonna.Gets or sets the text displayed in the header section of the column.

(Ereditato da DataGridColumn)
IsTrackingViewState

Ottiene un valore che determina se l'oggetto DataGridColumn è contrassegnato per il salvataggio dello stato.Gets a value that determines whether the DataGridColumn object is marked to save its state.

(Ereditato da DataGridColumn)
ItemStyle

Ottiene le proprietà di stile per le celle degli elementi della colonna.Gets the style properties for the item cells of the column.

(Ereditato da DataGridColumn)
ItemTemplate

Ottiene o imposta il modello per visualizzare un elemento di dati in un oggetto TemplateColumn.Gets or sets the template for displaying a data item in a TemplateColumn object.

Owner

Ottiene il controllo DataGrid di cui la colonna è membro.Gets the DataGrid control that the column is a member of.

(Ereditato da DataGridColumn)
SortExpression

Ottiene o imposta il nome del campo o l'espressione da passare al metodo OnSortCommand(DataGridSortCommandEventArgs) quando una colonna viene selezionata per l'ordinamento.Gets or sets the name of the field or expression to pass to the OnSortCommand(DataGridSortCommandEventArgs) method when a column is selected for sorting.

(Ereditato da DataGridColumn)
ViewState

Ottiene l'oggetto StateBag che consente a una colonna derivata dalla classe DataGridColumn di memorizzare le relative proprietà.Gets the StateBag object that allows a column derived from the DataGridColumn class to store its properties.

(Ereditato da DataGridColumn)
Visible

Ottiene o imposta un valore che indica se la colonna è visibile nel controllo DataGrid.Gets or sets a value that indicates whether the column is visible in the DataGrid control.

(Ereditato da DataGridColumn)

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
Initialize()

Fornisce l'implementazione di base per ripristinare lo stato iniziale di una colonna derivata dalla classe DataGridColumn.Provides the base implementation to reset a column derived from the DataGridColumn class to its initial state.

(Ereditato da DataGridColumn)
InitializeCell(TableCell, Int32, ListItemType)

Chiama una classe base dell'oggetto TableCell per inizializzare l'istanza e quindi applica un elemento ListItemType alla cella.Calls a TableCell object's base class to initialize the instance and then applies a ListItemType to the cell.

LoadViewState(Object)

Carica lo stato dell'oggetto DataGridColumn.Loads the state of the DataGridColumn object.

(Ereditato da DataGridColumn)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
OnColumnChanged()

Chiama il metodo OnColumnsChanged().Calls the OnColumnsChanged() method.

(Ereditato da DataGridColumn)
SaveViewState()

Salva lo stato corrente dell'oggetto DataGridColumn.Saves the current state of the DataGridColumn object.

(Ereditato da DataGridColumn)
ToString()

Restituisce la rappresentazione in forma di stringa della colonna.Returns the string representation of the column.

(Ereditato da DataGridColumn)
TrackViewState()

Attiva il rilevamento delle modifiche dello stato di visualizzazione nel controllo server per consentirne la memorizzazione nell'oggetto StateBag del controllo server.Causes tracking of view-state changes to the server control so they can be stored in the server control's StateBag object.

(Ereditato da DataGridColumn)

Implementazioni dell'interfaccia esplicita

IStateManager.IsTrackingViewState

Ottiene un valore che indica se nella colonna vengono registrate le modifiche dello stato di visualizzazione.Gets a value that indicates whether the column is tracking view state changes.

(Ereditato da DataGridColumn)
IStateManager.LoadViewState(Object)

Carica lo stato salvato in precedenza.Loads previously saved state.

(Ereditato da DataGridColumn)
IStateManager.SaveViewState()

Restituisce un oggetto contenente le modifiche dello stato.Returns an object containing state changes.

(Ereditato da DataGridColumn)
IStateManager.TrackViewState()

Avvia la registrazione delle modifiche dello stato.Starts tracking state changes.

(Ereditato da DataGridColumn)

Si applica a

Vedi anche