CompositeControl.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / xsp / System / Web / UI / WebControls / CompositeControl.cs / 2 / CompositeControl.cs

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

namespace System.Web.UI.WebControls { 
 
    using System.ComponentModel;
    using System.Security.Permissions; 

    /// 
    /// Base class for composite controls -- controls that contain other controls and reuse their functionality
    /// via class composition.  See Chapter 12 in "Developing Microsoft ASP.NET Server Controls and Components." 
    /// The following classes have copied code from this class (look for "Copied from CompositeControl" comment):
    /// - ChangePassword 
    /// - Login 
    /// - LoginView
    /// - SiteMapPath 
    /// 
    [
    Designer("System.Web.UI.Design.WebControls.CompositeControlDesigner, " + AssemblyRef.SystemDesign)
    ] 
    [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)]
    [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] 
    public abstract class CompositeControl : WebControl, INamingContainer, ICompositeControlDesignerAccessor { 

 
        /// 
        /// Ensure that the child controls have been created before returning the controls collection
        /// 
        public override ControlCollection Controls { 
            get {
                EnsureChildControls(); 
                return base.Controls; 
            }
        } 


        /// 
        /// Perform our own databinding, then perform our child controls' databinding. 
        /// Does not call Base.DataBind(), since we need to call EnsureChildControls() between
        /// OnDataBinding() and DataBindChildren(). 
        ///  
        public override void DataBind() {
            OnDataBinding(EventArgs.Empty); 

            EnsureChildControls();

            DataBindChildren(); 
        }
 
        protected virtual void RecreateChildControls() { 
            ChildControlsCreated = false;
            EnsureChildControls(); 
        }

        // Needed so the CompositeControl renders correctly in the designer, even when it does not have
        // an associated ControlDesigner (i.e. it is a child control of another CompositeControl). 
        protected internal override void Render(HtmlTextWriter writer) {
            if (DesignMode) { 
                EnsureChildControls(); 
            }
 
            base.Render(writer);
        }

        #region ICompositeControlDesignerAccessor implementation 
        void ICompositeControlDesignerAccessor.RecreateChildControls() {
            RecreateChildControls(); 
        } 
        #endregion
    } 
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.


                        

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