TemplateColumn.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / WebControls / TemplateColumn.cs / 1305376 / TemplateColumn.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

namespace System.Web.UI.WebControls { 
 
    using System;
    using System.Collections; 
    using System.ComponentModel;
    using System.Web;
    using System.Web.UI;
 
    /// 
    ///    Defines the template for controls layout within a 
    ///     
    ///    column.
    ///  
    //


    public class TemplateColumn : DataGridColumn { 

        private ITemplate headerTemplate; 
        private ITemplate footerTemplate; 
        private ITemplate itemTemplate;
        private ITemplate editItemTemplate; 



        ///  
        ///    Initializes a new instance of the  class.
        ///  
        public TemplateColumn() { 
        }
 


        /// 
        /// Specifies the  that defines how items in edit mode are rendered.  
        /// 
        [ 
            Browsable(false), 
            DefaultValue(null),
            WebSysDescription(SR.TemplateColumn_EditItemTemplate), 
            PersistenceMode(PersistenceMode.InnerProperty),
            TemplateContainer(typeof(DataGridItem))
        ]
        public virtual ITemplate EditItemTemplate { 
            get {
                return editItemTemplate; 
            } 
            set {
                editItemTemplate = value; 
                OnColumnChanged();
            }
        }
 

        ///  
        /// Specifies the  that defines how the control footer is rendered.  
        /// 
        [ 
            Browsable(false),
            DefaultValue(null),
            WebSysDescription(SR.TemplateColumn_FooterTemplate),
            PersistenceMode(PersistenceMode.InnerProperty), 
            TemplateContainer(typeof(DataGridItem))
        ] 
        public virtual ITemplate FooterTemplate { 
            get {
                return footerTemplate; 
            }
            set {
                footerTemplate = value;
                OnColumnChanged(); 
            }
        } 
 

        ///  
        /// Specifies the 
        /// that defines how the control header is rendered.
        /// 
        [ 
            Browsable(false),
            DefaultValue(null), 
            WebSysDescription(SR.TemplateColumn_HeaderTemplate), 
            PersistenceMode(PersistenceMode.InnerProperty),
            TemplateContainer(typeof(DataGridItem)) 
        ]
        public virtual ITemplate HeaderTemplate {
            get {
                return headerTemplate; 
            }
            set { 
                headerTemplate = value; 
                OnColumnChanged();
            } 
        }


        ///  
        ///  Specifies the  that defines how items are rendered. 
        ///  
        [ 
            Browsable(false),
            DefaultValue(null), 
            WebSysDescription(SR.TemplateColumn_ItemTemplate),
            PersistenceMode(PersistenceMode.InnerProperty),
            TemplateContainer(typeof(DataGridItem))
        ] 
        public virtual ITemplate ItemTemplate {
            get { 
                return itemTemplate; 
            }
            set { 
                itemTemplate = value;
                OnColumnChanged();
            }
        } 

 
        ///  
        /// 
        ///  
        public override void InitializeCell(TableCell cell, int columnIndex, ListItemType itemType) {
            base.InitializeCell(cell, columnIndex, itemType);

            ITemplate contentTemplate = null; 
            switch (itemType) {
                case ListItemType.Header: 
                    contentTemplate = headerTemplate; 
                    break;
 
                case ListItemType.Footer:
                    contentTemplate = footerTemplate;
                    break;
 
                case ListItemType.Item:
                case ListItemType.AlternatingItem: 
                case ListItemType.SelectedItem: 
                    contentTemplate = itemTemplate;
                    break; 

                case ListItemType.EditItem:
                    if (editItemTemplate != null)
                        contentTemplate = editItemTemplate; 
                    else
                        goto case ListItemType.Item; 
                    break; 
            }
 
            if (contentTemplate != null) {
                // The base class might have added a control or some text for some cases
                // such as header text which need to be removed before
                // the corresponding template is used. 
                // Note that setting text also has the effect of clearing out any controls.
                cell.Text = String.Empty; 
 
                contentTemplate.InstantiateIn(cell);
            } 
            else {
                if (itemType == ListItemType.Item ||
                    itemType == ListItemType.AlternatingItem ||
                    itemType == ListItemType.SelectedItem || 
                    itemType == ListItemType.EditItem) {
                    cell.Text = " "; 
                } 
            }
        } 
    }
}


// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK