HtmlControl.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / HtmlControls / HtmlControl.cs / 1305376 / HtmlControl.cs

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

/* 
 * HtmlControl.cs 
 *
 * Copyright (c) 2000 Microsoft Corporation 
 */

namespace System.Web.UI.HtmlControls {
    using System; 
    using System.Globalization;
    using System.Collections; 
    using System.ComponentModel; 
    using System.ComponentModel.Design;
    using System.IO; 
    using System.Web.Util;
    using System.Web.UI;
    using AttributeCollection = System.Web.UI.AttributeCollection;
    using System.Security.Permissions; 

/* 
 * An abstract base class representing an intrinsic Html tag that 
 * is not represented by both a begin and end tag, for example
 * INPUT or IMG. 
 */

/// 
///     
///       The 
///       class defines the methods, properties, and events 
///       common to all HTML Server controls in the Web Forms page framework. 
///    
///  
    [
    Designer("System.Web.UI.Design.HtmlIntrinsicControlDesigner, " + AssemblyRef.SystemDesign),
    ToolboxItem(false)
    ] 
    abstract public class HtmlControl : Control, IAttributeAccessor {
        internal string             _tagName; 
        private AttributeCollection _attributes; 

 

        /// 
        /// 
        protected HtmlControl() : this("span") { 
        }
 
 
        /// 
        ///  
        protected HtmlControl(string tag) {
            _tagName = tag;
        }
 

        /* 
         *  Access to collection of Attributes. 
         */
 
        /// 
        ///    
        ///       Gets all attribute name/value pairs expressed on a
        ///       server control tag within a selected ASP.NET page. 
        ///    
        ///  
        [ 
        Browsable(false),
        DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), 
        ]
        public AttributeCollection Attributes {
            [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
            get { 
                if (_attributes == null)
                    _attributes = new AttributeCollection(ViewState); 
 
                return _attributes;
            } 
        }


        /* 
         *  Access to collection of styles.
         */ 
 
        /// 
        ///     
        ///       Gets all
        ///       cascading style sheet (CSS) properties that
        ///       are applied
        ///       to a specified HTML Server control in an .aspx 
        ///       file.
        ///     
        ///  
        [
        Browsable(false), 
        DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
        ]
        public CssStyleCollection Style {
            get { 
                return Attributes.CssStyle;
            } 
        } 

        /* 
         * Property to get name of tag.
         */

        ///  
        ///    
        ///       Gets the element name of a tag that contains a runat=server 
        ///       attribute/value pair. 
        ///    
        ///  
        [
        WebCategory("Appearance"),
        DefaultValue(""),
        DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) 
        ]
        public virtual  string TagName { 
            get { return _tagName;} 
        }
 
        /*
         * Disabled property.
         */
 
        /// 
        ///     
        ///       Gets or sets 
        ///       a value indicating whether ---- attribute is included when a server
        ///       control is rendered. 
        ///    
        /// 
        [
        WebCategory("Behavior"), 
        DefaultValue(false),
        DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), 
        TypeConverter(typeof(MinimizableAttributeTypeConverter)) 
        ]
        public bool Disabled { 
            get {
                string s = Attributes["disabled"];
                return((s != null) ? (s.Equals("disabled")) : false);
            } 

            set { 
                if (value) 
                    Attributes["disabled"] = "disabled";
                else 
                    Attributes["disabled"] = null;

            }
        } 

 
        ///  
        /// 
        ///  
        protected override bool ViewStateIgnoresCase {
            get {
                return true;
            } 
        }
 
 
        /// 
        ///    [To be supplied.] 
        /// 
        protected override ControlCollection CreateControlCollection() {
            return new EmptyControlCollection(this);
        } 

        /* 
         * Render the control into the given writer. 
         */
 
        /// 
        /// 
        /// 
        protected internal override void Render(HtmlTextWriter writer) { 
            RenderBeginTag(writer);
        } 
 
        /*
         * Render only the attributes, attr1=value1 attr2=value2 ... 
         */

        /// 
        ///  
        /// 
        protected virtual void RenderAttributes(HtmlTextWriter writer) { 
            if (ID != null) 
                writer.WriteAttribute("id", ClientID);
 
            Attributes.Render(writer);
        }

        /* 
         * Render the begin tag and its attributes, <TAGNAME attr1=value1 attr2=value2>.
         */ 
 
        /// 
        ///  
        /// 
        protected virtual void RenderBeginTag(HtmlTextWriter writer) {
            writer.WriteBeginTag(TagName);
            RenderAttributes(writer); 
            writer.Write(HtmlTextWriter.TagRightChar);
        } 
 
        /*
         * HtmlControls support generic access to Attributes. 
         */

        /// 
        ///  
        /// 
        string IAttributeAccessor.GetAttribute(string name) { 
            return GetAttribute(name); 
        }
 

        /// 
        /// 
        ///  
        protected virtual string GetAttribute(string name) {
            return Attributes[name]; 
        } 

        /* 
         * HtmlControls support generic access to Attributes.
         */

        ///  
        /// 
        ///  
        void IAttributeAccessor.SetAttribute(string name, string value) { 
            SetAttribute(name, value);
        } 


        /// 
        ///  
        /// 
        protected virtual void SetAttribute(string name, string value) { 
            Attributes[name] = value; 
        }
 
        internal void PreProcessRelativeReferenceAttribute(HtmlTextWriter writer,
            string attribName) {

            string url = Attributes[attribName]; 

            // Don't do anything if it's not specified 
            if (String.IsNullOrEmpty(url)) 
                return;
 
            try {
                url = ResolveClientUrl(url);
            }
            catch (Exception e) { 
                throw new HttpException(SR.GetString(SR.Property_Had_Malformed_Url, attribName, e.Message));
            } 
 
            writer.WriteAttribute(attribName, url);
            Attributes.Remove(attribName); 
        }

        internal static string MapStringAttributeToString(string s) {
 
            // If it's an empty string, change it to null
            if (s != null && s.Length == 0) 
                return null; 

            // Otherwise, just return the input 
            return s;
        }

        internal static string MapIntegerAttributeToString(int n) { 

            // If it's -1, change it to null 
            if (n == -1) 
                return null;
 
            // Otherwise, convert the integer to a string
            return n.ToString(NumberFormatInfo.InvariantInfo);
        }
    } 
}
 

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

/* 
 * HtmlControl.cs 
 *
 * Copyright (c) 2000 Microsoft Corporation 
 */

namespace System.Web.UI.HtmlControls {
    using System; 
    using System.Globalization;
    using System.Collections; 
    using System.ComponentModel; 
    using System.ComponentModel.Design;
    using System.IO; 
    using System.Web.Util;
    using System.Web.UI;
    using AttributeCollection = System.Web.UI.AttributeCollection;
    using System.Security.Permissions; 

/* 
 * An abstract base class representing an intrinsic Html tag that 
 * is not represented by both a begin and end tag, for example
 * INPUT or IMG. 
 */

/// 
///     
///       The 
///       class defines the methods, properties, and events 
///       common to all HTML Server controls in the Web Forms page framework. 
///    
///  
    [
    Designer("System.Web.UI.Design.HtmlIntrinsicControlDesigner, " + AssemblyRef.SystemDesign),
    ToolboxItem(false)
    ] 
    abstract public class HtmlControl : Control, IAttributeAccessor {
        internal string             _tagName; 
        private AttributeCollection _attributes; 

 

        /// 
        /// 
        protected HtmlControl() : this("span") { 
        }
 
 
        /// 
        ///  
        protected HtmlControl(string tag) {
            _tagName = tag;
        }
 

        /* 
         *  Access to collection of Attributes. 
         */
 
        /// 
        ///    
        ///       Gets all attribute name/value pairs expressed on a
        ///       server control tag within a selected ASP.NET page. 
        ///    
        ///  
        [ 
        Browsable(false),
        DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), 
        ]
        public AttributeCollection Attributes {
            [System.Runtime.TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
            get { 
                if (_attributes == null)
                    _attributes = new AttributeCollection(ViewState); 
 
                return _attributes;
            } 
        }


        /* 
         *  Access to collection of styles.
         */ 
 
        /// 
        ///     
        ///       Gets all
        ///       cascading style sheet (CSS) properties that
        ///       are applied
        ///       to a specified HTML Server control in an .aspx 
        ///       file.
        ///     
        ///  
        [
        Browsable(false), 
        DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden),
        ]
        public CssStyleCollection Style {
            get { 
                return Attributes.CssStyle;
            } 
        } 

        /* 
         * Property to get name of tag.
         */

        ///  
        ///    
        ///       Gets the element name of a tag that contains a runat=server 
        ///       attribute/value pair. 
        ///    
        ///  
        [
        WebCategory("Appearance"),
        DefaultValue(""),
        DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) 
        ]
        public virtual  string TagName { 
            get { return _tagName;} 
        }
 
        /*
         * Disabled property.
         */
 
        /// 
        ///     
        ///       Gets or sets 
        ///       a value indicating whether ---- attribute is included when a server
        ///       control is rendered. 
        ///    
        /// 
        [
        WebCategory("Behavior"), 
        DefaultValue(false),
        DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), 
        TypeConverter(typeof(MinimizableAttributeTypeConverter)) 
        ]
        public bool Disabled { 
            get {
                string s = Attributes["disabled"];
                return((s != null) ? (s.Equals("disabled")) : false);
            } 

            set { 
                if (value) 
                    Attributes["disabled"] = "disabled";
                else 
                    Attributes["disabled"] = null;

            }
        } 

 
        ///  
        /// 
        ///  
        protected override bool ViewStateIgnoresCase {
            get {
                return true;
            } 
        }
 
 
        /// 
        ///    [To be supplied.] 
        /// 
        protected override ControlCollection CreateControlCollection() {
            return new EmptyControlCollection(this);
        } 

        /* 
         * Render the control into the given writer. 
         */
 
        /// 
        /// 
        /// 
        protected internal override void Render(HtmlTextWriter writer) { 
            RenderBeginTag(writer);
        } 
 
        /*
         * Render only the attributes, attr1=value1 attr2=value2 ... 
         */

        /// 
        ///  
        /// 
        protected virtual void RenderAttributes(HtmlTextWriter writer) { 
            if (ID != null) 
                writer.WriteAttribute("id", ClientID);
 
            Attributes.Render(writer);
        }

        /* 
         * Render the begin tag and its attributes, <TAGNAME attr1=value1 attr2=value2>.
         */ 
 
        /// 
        ///  
        /// 
        protected virtual void RenderBeginTag(HtmlTextWriter writer) {
            writer.WriteBeginTag(TagName);
            RenderAttributes(writer); 
            writer.Write(HtmlTextWriter.TagRightChar);
        } 
 
        /*
         * HtmlControls support generic access to Attributes. 
         */

        /// 
        ///  
        /// 
        string IAttributeAccessor.GetAttribute(string name) { 
            return GetAttribute(name); 
        }
 

        /// 
        /// 
        ///  
        protected virtual string GetAttribute(string name) {
            return Attributes[name]; 
        } 

        /* 
         * HtmlControls support generic access to Attributes.
         */

        ///  
        /// 
        ///  
        void IAttributeAccessor.SetAttribute(string name, string value) { 
            SetAttribute(name, value);
        } 


        /// 
        ///  
        /// 
        protected virtual void SetAttribute(string name, string value) { 
            Attributes[name] = value; 
        }
 
        internal void PreProcessRelativeReferenceAttribute(HtmlTextWriter writer,
            string attribName) {

            string url = Attributes[attribName]; 

            // Don't do anything if it's not specified 
            if (String.IsNullOrEmpty(url)) 
                return;
 
            try {
                url = ResolveClientUrl(url);
            }
            catch (Exception e) { 
                throw new HttpException(SR.GetString(SR.Property_Had_Malformed_Url, attribName, e.Message));
            } 
 
            writer.WriteAttribute(attribName, url);
            Attributes.Remove(attribName); 
        }

        internal static string MapStringAttributeToString(string s) {
 
            // If it's an empty string, change it to null
            if (s != null && s.Length == 0) 
                return null; 

            // Otherwise, just return the input 
            return s;
        }

        internal static string MapIntegerAttributeToString(int n) { 

            // If it's -1, change it to null 
            if (n == -1) 
                return null;
 
            // Otherwise, convert the integer to a string
            return n.ToString(NumberFormatInfo.InvariantInfo);
        }
    } 
}
 

// 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