TemplateColumn Klasa

Definicja

Reprezentuje typ kolumny dla DataGrid kontrolki, która umożliwia dostosowanie układu kontrolek w kolumnie.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
Dziedziczenie
TemplateColumn

Przykłady

Poniższy przykład kodu demonstruje, jak użyć TemplateColumn klasy do utworzenia kolumny w DataGrid kontrolce z układem niestandardowym.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>

Uwagi

Użyj TemplateColumn typu kolumny w DataGrid kontrolce, aby utworzyć kolumnę z dostosowany układem kontrolek.Use the TemplateColumn column type in a DataGrid control to create a column with a customized control layout. Możesz podać niestandardowy wygląd sekcji nagłówka, sekcji stopki i sekcji Items kolumny przy użyciu HeaderTemplate FooterTemplate ItemTemplate odpowiednio właściwości, i.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. Można również kontrolować sposób wyświetlania edytowanego elementu w TemplateColumn obiekcie przez ustawienie EditItemTemplate właściwości.You can also control how an item being edited is displayed in the TemplateColumn object by setting the EditItemTemplate property.

Konstruktory

TemplateColumn()

Inicjuje nowe wystąpienie klasy TemplateColumn.Initializes a new instance of the TemplateColumn class.

Właściwości

DesignMode

Pobiera wartość wskazującą, czy kolumna jest w trybie projektowania.Gets a value that indicates whether the column is in design mode.

(Odziedziczone po DataGridColumn)
EditItemTemplate

Pobiera lub ustawia szablon służący do wyświetlania elementu wybranego do edycji w TemplateColumn obiekcie.Gets or sets the template for displaying the item selected for editing in a TemplateColumn object.

FooterStyle

Pobiera właściwości stylu sekcji stopki w kolumnie.Gets the style properties for the footer section of the column.

(Odziedziczone po DataGridColumn)
FooterTemplate

Pobiera lub ustawia szablon do wyświetlania sekcji stopki TemplateColumn obiektu.Gets or sets the template for displaying the footer section of the TemplateColumn object.

FooterText

Pobiera lub ustawia tekst wyświetlany w sekcji stopki w kolumnie.Gets or sets the text displayed in the footer section of the column.

(Odziedziczone po DataGridColumn)
HeaderImageUrl

Pobiera lub ustawia lokalizację obrazu, który ma być wyświetlany w sekcji nagłówka kolumny.Gets or sets the location of an image to display in the header section of the column.

(Odziedziczone po DataGridColumn)
HeaderStyle

Pobiera właściwości stylu sekcji nagłówka kolumny.Gets the style properties for the header section of the column.

(Odziedziczone po DataGridColumn)
HeaderTemplate

Pobiera lub ustawia szablon służący do wyświetlania sekcji nagłówka TemplateColumn obiektu.Gets or sets the template for displaying the heading section of the TemplateColumn object.

HeaderText

Pobiera lub ustawia tekst wyświetlany w sekcji nagłówek kolumny.Gets or sets the text displayed in the header section of the column.

(Odziedziczone po DataGridColumn)
IsTrackingViewState

Pobiera wartość określającą, czy DataGridColumn obiekt jest oznaczony do zapisania jego stanu.Gets a value that determines whether the DataGridColumn object is marked to save its state.

(Odziedziczone po DataGridColumn)
ItemStyle

Pobiera właściwości stylu dla komórek elementów w kolumnie.Gets the style properties for the item cells of the column.

(Odziedziczone po DataGridColumn)
ItemTemplate

Pobiera lub ustawia szablon służący do wyświetlania elementu danych w TemplateColumn obiekcie.Gets or sets the template for displaying a data item in a TemplateColumn object.

Owner

Pobiera DataGrid kontrolkę, której członkiem jest kolumna.Gets the DataGrid control that the column is a member of.

(Odziedziczone po DataGridColumn)
SortExpression

Pobiera lub ustawia nazwę pola lub wyrażenia, które ma zostać przekazane do OnSortCommand(DataGridSortCommandEventArgs) metody w przypadku wybrania kolumny do sortowania.Gets or sets the name of the field or expression to pass to the OnSortCommand(DataGridSortCommandEventArgs) method when a column is selected for sorting.

(Odziedziczone po DataGridColumn)
ViewState

Pobiera StateBag obiekt, który umożliwia kolumnie pochodnej z DataGridColumn klasy przechowywanie jej właściwości.Gets the StateBag object that allows a column derived from the DataGridColumn class to store its properties.

(Odziedziczone po DataGridColumn)
Visible

Pobiera lub ustawia wartość wskazującą, czy kolumna jest widoczna w DataGrid formancie.Gets or sets a value that indicates whether the column is visible in the DataGrid control.

(Odziedziczone po DataGridColumn)

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżące wystąpienie.Gets the Type of the current instance.

(Odziedziczone po Object)
Initialize()

Dostarcza podstawową implementację do resetowania kolumny pochodzącej od DataGridColumn klasy do stanu początkowego.Provides the base implementation to reset a column derived from the DataGridColumn class to its initial state.

(Odziedziczone po DataGridColumn)
InitializeCell(TableCell, Int32, ListItemType)

Wywołuje TableCell klasę bazową obiektu, aby zainicjować wystąpienie, a następnie stosuje ListItemType do komórki.Calls a TableCell object's base class to initialize the instance and then applies a ListItemType to the cell.

LoadViewState(Object)

Ładuje stan DataGridColumn obiektu.Loads the state of the DataGridColumn object.

(Odziedziczone po DataGridColumn)
MemberwiseClone()

Tworzy skróconą kopię bieżącego elementu Object .Creates a shallow copy of the current Object.

(Odziedziczone po Object)
OnColumnChanged()

Wywołuje OnColumnsChanged() metodę.Calls the OnColumnsChanged() method.

(Odziedziczone po DataGridColumn)
SaveViewState()

Zapisuje bieżący stan DataGridColumn obiektu.Saves the current state of the DataGridColumn object.

(Odziedziczone po DataGridColumn)
ToString()

Zwraca ciąg reprezentujący kolumnę.Returns the string representation of the column.

(Odziedziczone po DataGridColumn)
TrackViewState()

Powoduje śledzenie zmian stanu widoku w formancie serwera, aby mogły być przechowywane w obiekcie formantu serwera StateBag .Causes tracking of view-state changes to the server control so they can be stored in the server control's StateBag object.

(Odziedziczone po DataGridColumn)

Jawne implementacje interfejsu

IStateManager.IsTrackingViewState

Pobiera wartość wskazującą, czy kolumna śledzi zmiany stanu widoku.Gets a value that indicates whether the column is tracking view state changes.

(Odziedziczone po DataGridColumn)
IStateManager.LoadViewState(Object)

Ładuje wcześniej zapisany stan.Loads previously saved state.

(Odziedziczone po DataGridColumn)
IStateManager.SaveViewState()

Zwraca obiekt zawierający zmiany stanu.Returns an object containing state changes.

(Odziedziczone po DataGridColumn)
IStateManager.TrackViewState()

Uruchamia śledzenie zmian stanu.Starts tracking state changes.

(Odziedziczone po DataGridColumn)

Dotyczy

Zobacz też