Bagikan melalui


TemplateColumn Kelas

Definisi

Mewakili tipe kolom untuk DataGrid kontrol yang memungkinkan Anda mengkustomisasi tata letak kontrol dalam kolom.

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
Warisan
TemplateColumn

Contoh

Contoh kode berikut menunjukkan cara menggunakan TemplateColumn kelas untuk membuat kolom di DataGrid kontrol dengan tata letak kustom.


<%@ 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>

Keterangan

TemplateColumn Gunakan tipe kolom dalam DataGrid kontrol untuk membuat kolom dengan tata letak kontrol yang dikustomisasi. Anda dapat memberikan tampilan kustom untuk bagian judul, bagian footer, dan bagian item kolom dengan menggunakan HeaderTemplateproperti , FooterTemplate, dan ItemTemplate masing-masing. Anda juga dapat mengontrol bagaimana item yang sedang diedit ditampilkan di TemplateColumn objek dengan mengatur EditItemTemplate properti .

Konstruktor

Nama Deskripsi
TemplateColumn()

Menginisialisasi instans baru dari kelas TemplateColumn.

Properti

Nama Deskripsi
DesignMode

Mendapatkan nilai yang menunjukkan apakah kolom berada dalam mode desain.

(Diperoleh dari DataGridColumn)
EditItemTemplate

Mendapatkan atau mengatur templat untuk menampilkan item yang dipilih untuk pengeditan dalam TemplateColumn objek.

FooterStyle

Mendapatkan properti gaya untuk bagian footer kolom.

(Diperoleh dari DataGridColumn)
FooterTemplate

Mendapatkan atau mengatur templat untuk menampilkan bagian TemplateColumn footer objek.

FooterText

Mendapatkan atau mengatur teks yang ditampilkan di bagian footer kolom.

(Diperoleh dari DataGridColumn)
HeaderImageUrl

Mendapatkan atau mengatur lokasi gambar untuk ditampilkan di bagian header kolom.

(Diperoleh dari DataGridColumn)
HeaderStyle

Mendapatkan properti gaya untuk bagian header kolom.

(Diperoleh dari DataGridColumn)
HeaderTemplate

Mendapatkan atau mengatur templat untuk menampilkan bagian TemplateColumn judul objek.

HeaderText

Mendapatkan atau mengatur teks yang ditampilkan di bagian header kolom.

(Diperoleh dari DataGridColumn)
IsTrackingViewState

Mendapatkan nilai yang menentukan apakah DataGridColumn objek ditandai untuk menyimpan statusnya.

(Diperoleh dari DataGridColumn)
ItemStyle

Mendapatkan properti gaya untuk sel item kolom.

(Diperoleh dari DataGridColumn)
ItemTemplate

Mendapatkan atau mengatur templat untuk menampilkan item data dalam TemplateColumn objek.

Owner

DataGrid Mendapatkan kontrol bahwa kolom adalah anggota.

(Diperoleh dari DataGridColumn)
SortExpression

Mendapatkan atau mengatur nama bidang atau ekspresi untuk diteruskan ke OnSortCommand(DataGridSortCommandEventArgs) metode saat kolom dipilih untuk pengurutan.

(Diperoleh dari DataGridColumn)
ViewState

StateBag Mendapatkan objek yang memungkinkan kolom yang berasal dari DataGridColumn kelas untuk menyimpan propertinya.

(Diperoleh dari DataGridColumn)
Visible

Mendapatkan atau mengatur nilai yang menunjukkan apakah kolom terlihat dalam DataGrid kontrol.

(Diperoleh dari DataGridColumn)

Metode

Nama Deskripsi
Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan Type instans saat ini.

(Diperoleh dari Object)
Initialize()

Menyediakan implementasi dasar untuk mengatur ulang kolom yang berasal dari DataGridColumn kelas ke status awalnya.

(Diperoleh dari DataGridColumn)
InitializeCell(TableCell, Int32, ListItemType)

TableCell Memanggil kelas dasar objek untuk menginisialisasi instans ListItemType lalu menerapkan ke sel.

LoadViewState(Object)

Memuat status DataGridColumn objek.

(Diperoleh dari DataGridColumn)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
OnColumnChanged()

OnColumnsChanged() Memanggil metode .

(Diperoleh dari DataGridColumn)
SaveViewState()

Menyimpan status DataGridColumn objek saat ini.

(Diperoleh dari DataGridColumn)
ToString()

Mengembalikan representasi string kolom.

(Diperoleh dari DataGridColumn)
TrackViewState()

Menyebabkan pelacakan perubahan status tampilan pada kontrol server sehingga dapat disimpan di objek kontrol StateBag server.

(Diperoleh dari DataGridColumn)

Implementasi Antarmuka Eksplisit

Nama Deskripsi
IStateManager.IsTrackingViewState

Mendapatkan nilai yang menunjukkan apakah kolom melacak perubahan status tampilan.

(Diperoleh dari DataGridColumn)
IStateManager.LoadViewState(Object)

Memuat status yang disimpan sebelumnya.

(Diperoleh dari DataGridColumn)
IStateManager.SaveViewState()

Mengembalikan objek yang berisi perubahan status.

(Diperoleh dari DataGridColumn)
IStateManager.TrackViewState()

Mulai melacak perubahan status.

(Diperoleh dari DataGridColumn)

Berlaku untuk

Lihat juga