You've already forked linux-packaging-mono
							
							
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| //------------------------------------------------------------------------------
 | |
| // <copyright file="CompositeControl.cs" company="Microsoft">
 | |
| //     Copyright (c) Microsoft Corporation.  All rights reserved.
 | |
| // </copyright>
 | |
| //------------------------------------------------------------------------------
 | |
| 
 | |
| namespace System.Web.UI.WebControls {
 | |
| 
 | |
|     using System.ComponentModel;
 | |
|     using System.Web.Util;
 | |
| 
 | |
|     /// <devdoc>
 | |
|     /// 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
 | |
|     /// </devdoc>
 | |
|     [
 | |
|     Designer("System.Web.UI.Design.WebControls.CompositeControlDesigner, " + AssemblyRef.SystemDesign)
 | |
|     ]
 | |
|     public abstract class CompositeControl : WebControl, INamingContainer, ICompositeControlDesignerAccessor {
 | |
| 
 | |
| 
 | |
|         /// <devdoc>
 | |
|         /// Ensure that the child controls have been created before returning the controls collection
 | |
|         /// </devdoc>
 | |
|         public override ControlCollection Controls {
 | |
|             get {
 | |
|                 EnsureChildControls();
 | |
|                 return base.Controls;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         public override bool SupportsDisabledAttribute {
 | |
|             get {
 | |
|                 return RenderingCompatibility < VersionUtil.Framework40;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <devdoc>
 | |
|         /// 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().
 | |
|         /// </devdoc>
 | |
|         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
 | |
|     }
 | |
| }
 |