ChildTable.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / ndp / fx / src / xsp / System / Web / UI / WebControls / ChildTable.cs / 3 / ChildTable.cs

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

namespace System.Web.UI.WebControls { 
 
    using System;
    using System.ComponentModel; 
    using System.Web.UI;
    using System.Web.Util;

    [ 
    ToolboxItem(false),
    SupportsEventValidation, 
    ] 

    ///  
    /// 
    ///   Used by composite controls that are based on a table, that only render
    ///   their contents.
    ///   Used to render out an ID attribute representing the parent composite control 
    ///   if an ID is not actually set on this table.
    ///  
    internal class ChildTable : Table { 

        private int _parentLevel; 
        private string _parentID;
        private bool _parentIDSet;

 
        /// 
        internal ChildTable() : this(1) { 
        } 

 
        /// 
        internal ChildTable(int parentLevel) {
            Debug.Assert(parentLevel >= 1);
            _parentLevel = parentLevel; 
            _parentIDSet = false;
        } 
 
        internal ChildTable(string parentID) {
            _parentID = parentID; 
            _parentIDSet = true;
        }

 
        /// 
        protected override void AddAttributesToRender(HtmlTextWriter writer) { 
            base.AddAttributesToRender(writer); 
            string parentID = _parentID;
 
            if (!_parentIDSet) {
                parentID = GetParentID();
            }
 
            if (parentID != null) {
                writer.AddAttribute(HtmlTextWriterAttribute.Id, parentID); 
            } 
        }
 

        /// 
        /// Gets the ClientID of the parent whose ID is supposed to be used in the rendering.
        ///  
        private string GetParentID() {
            if (ID != null) { 
                return null; 
            }
 
            Control parent = this;
            for (int i = 0; i < _parentLevel; i++) {
                parent = parent.Parent;
                if (parent == null) { 
                    break;
                } 
            } 

            Debug.Assert(parent != null); 
            if (parent != null) {
                string id = parent.ID;
                if (!String.IsNullOrEmpty(id)) {
                    return parent.ClientID; 
                }
            } 
 
            return null;
        } 
    }
}

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

namespace System.Web.UI.WebControls { 
 
    using System;
    using System.ComponentModel; 
    using System.Web.UI;
    using System.Web.Util;

    [ 
    ToolboxItem(false),
    SupportsEventValidation, 
    ] 

    ///  
    /// 
    ///   Used by composite controls that are based on a table, that only render
    ///   their contents.
    ///   Used to render out an ID attribute representing the parent composite control 
    ///   if an ID is not actually set on this table.
    ///  
    internal class ChildTable : Table { 

        private int _parentLevel; 
        private string _parentID;
        private bool _parentIDSet;

 
        /// 
        internal ChildTable() : this(1) { 
        } 

 
        /// 
        internal ChildTable(int parentLevel) {
            Debug.Assert(parentLevel >= 1);
            _parentLevel = parentLevel; 
            _parentIDSet = false;
        } 
 
        internal ChildTable(string parentID) {
            _parentID = parentID; 
            _parentIDSet = true;
        }

 
        /// 
        protected override void AddAttributesToRender(HtmlTextWriter writer) { 
            base.AddAttributesToRender(writer); 
            string parentID = _parentID;
 
            if (!_parentIDSet) {
                parentID = GetParentID();
            }
 
            if (parentID != null) {
                writer.AddAttribute(HtmlTextWriterAttribute.Id, parentID); 
            } 
        }
 

        /// 
        /// Gets the ClientID of the parent whose ID is supposed to be used in the rendering.
        ///  
        private string GetParentID() {
            if (ID != null) { 
                return null; 
            }
 
            Control parent = this;
            for (int i = 0; i < _parentLevel; i++) {
                parent = parent.Parent;
                if (parent == null) { 
                    break;
                } 
            } 

            Debug.Assert(parent != null); 
            if (parent != null) {
                string id = parent.ID;
                if (!String.IsNullOrEmpty(id)) {
                    return parent.ClientID; 
                }
            } 
 
            return null;
        } 
    }
}

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