Aracılığıyla paylaş


TemplateColumn Sınıf

Tanım

Denetim için sütundaki denetimlerin DataGrid düzenini özelleştirmenizi sağlayan sütun türünü temsil eder.

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

Örnekler

Aşağıdaki kod örneği, özel düzende denetimde DataGrid bir sütun oluşturmak için sınıfının nasıl kullanılacağını TemplateColumn gösterir.


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

Açıklamalar

TemplateColumn Özelleştirilmiş denetim DataGrid düzenine sahip bir sütun oluşturmak için denetimdeki sütun türünü kullanın. Sırasıyla , FooterTemplateve özelliklerini kullanarak HeaderTemplatebaşlık bölümü, alt bilgi bölümü ve ItemTemplate sütunun öğeler bölümü için özel bir görünüm sağlayabilirsiniz. Ayrıca, özelliğini ayarlayarakEditItemTemplate, düzenlenmekte olan bir öğenin nesnede TemplateColumn nasıl görüntüleneceğini de denetleyebilirsiniz.

Oluşturucular

TemplateColumn()

TemplateColumn sınıfının yeni bir örneğini başlatır.

Özellikler

DesignMode

Sütunun tasarım modunda olup olmadığını gösteren bir değer alır.

(Devralındığı yer: DataGridColumn)
EditItemTemplate

Nesnede TemplateColumn düzenleme için seçilen öğeyi görüntülemek için şablonu alır veya ayarlar.

FooterStyle

Sütunun alt bilgi bölümünün stil özelliklerini alır.

(Devralındığı yer: DataGridColumn)
FooterTemplate

Nesnenin alt bilgi bölümünü TemplateColumn görüntülemek için şablonu alır veya ayarlar.

FooterText

Sütunun alt bilgi bölümünde görüntülenen metni alır veya ayarlar.

(Devralındığı yer: DataGridColumn)
HeaderImageUrl

Sütunun üst bilgi bölümünde görüntülenecek görüntünün konumunu alır veya ayarlar.

(Devralındığı yer: DataGridColumn)
HeaderStyle

Sütunun üst bilgi bölümünün stil özelliklerini alır.

(Devralındığı yer: DataGridColumn)
HeaderTemplate

Nesnenin başlık bölümünü TemplateColumn görüntülemek için şablonu alır veya ayarlar.

HeaderText

Sütunun üst bilgi bölümünde görüntülenen metni alır veya ayarlar.

(Devralındığı yer: DataGridColumn)
IsTrackingViewState

Nesnenin DataGridColumn durumunu kaydetmek için işaretlenip işaretlenmediğini belirleyen bir değer alır.

(Devralındığı yer: DataGridColumn)
ItemStyle

Sütunun öğe hücrelerinin stil özelliklerini alır.

(Devralındığı yer: DataGridColumn)
ItemTemplate

Nesnede bir veri öğesini TemplateColumn görüntülemek için şablonu alır veya ayarlar.

Owner

Sütunun DataGrid üyesi olduğu denetimi alır.

(Devralındığı yer: DataGridColumn)
SortExpression

Sıralama için bir sütun seçildiğinde yöntemine geçirilmesi için alanın veya ifadenin OnSortCommand(DataGridSortCommandEventArgs) adını alır veya ayarlar.

(Devralındığı yer: DataGridColumn)
ViewState

sınıfından StateBag türetilmiş bir sütunun DataGridColumn özelliklerini depolamasına izin veren nesnesini alır.

(Devralındığı yer: DataGridColumn)
Visible

Sütunun denetimde DataGrid görünür olup olmadığını gösteren bir değer alır veya ayarlar.

(Devralındığı yer: DataGridColumn)

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
Initialize()

sınıfından türetilen DataGridColumn bir sütunu ilk durumuna sıfırlamak için temel uygulamayı sağlar.

(Devralındığı yer: DataGridColumn)
InitializeCell(TableCell, Int32, ListItemType)

Örneği başlatmak için bir TableCell nesnenin temel sınıfını çağırır ve sonra hücreye bir ListItemType uygular.

LoadViewState(Object)

Nesnenin DataGridColumn durumunu yükler.

(Devralındığı yer: DataGridColumn)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
OnColumnChanged()

OnColumnsChanged() yöntemini çağırır.

(Devralındığı yer: DataGridColumn)
SaveViewState()

Nesnenin geçerli durumunu DataGridColumn kaydeder.

(Devralındığı yer: DataGridColumn)
ToString()

Sütunun dize gösterimini döndürür.

(Devralındığı yer: DataGridColumn)
TrackViewState()

Sunucu denetiminin nesnesinde depolanabilmeleri için sunucu StateBag denetiminde görünüm durumu değişikliklerinin izlenmesine neden olur.

(Devralındığı yer: DataGridColumn)

Belirtik Arabirim Kullanımları

IStateManager.IsTrackingViewState

Sütunun görünüm durumunun değişikliklerini izleyip izlemediğini gösteren bir değer alır.

(Devralındığı yer: DataGridColumn)
IStateManager.LoadViewState(Object)

Önceden kaydedilmiş durumu yükler.

(Devralındığı yer: DataGridColumn)
IStateManager.SaveViewState()

Durum değişikliklerini içeren bir nesne döndürür.

(Devralındığı yer: DataGridColumn)
IStateManager.TrackViewState()

Durum değişikliklerini izlemeye başlar.

(Devralındığı yer: DataGridColumn)

Şunlara uygulanır

Ayrıca bkz.