File: UI\WebControls\DataControlFieldHeaderCell.cs
Project: ndp\fx\src\xsp\system\Web\System.Web.csproj (System.Web)
//------------------------------------------------------------------------------
// <copyright file="DataControlFieldHeaderCell.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>                                                                
//------------------------------------------------------------------------------
 
namespace System.Web.UI.WebControls {
 
    using System;
    using System.Globalization;
 
    /// <devdoc>
    /// <para>Creates a special header cell that is contained within a DataControlField.</para>
    /// </devdoc>
    public class DataControlFieldHeaderCell : DataControlFieldCell {
 
 
        public DataControlFieldHeaderCell(DataControlField containingField) : base(HtmlTextWriterTag.Th, containingField) {
        }
 
 
        /// <devdoc>
        /// <para>
        /// Sets the abbreviated text for a header cell. The abbreviated text 
        /// is rendered with the HTML ABBR attribute. The ABBR attribute is important 
        /// for screen readers since it allows them to read a shortened version of a header for each cell in the table.
        /// </para>
        /// </devdoc>
        public virtual string AbbreviatedText {
            get {
                object x = ViewState["AbbrText"];
                return((x == null) ? String.Empty : (string)x);
            }
            set {
                ViewState["AbbrText"] = value;
            }
        }
 
 
        /// <devdoc>
        /// <para>
        /// Represents the cells that the header applies to. Renders the HTML scope attribute. Possible values are from the TableHeaderScope enumeration: Column and Row.
        /// </para>
        /// </devdoc>
        public virtual TableHeaderScope Scope {
            get {
                object x = ViewState["Scope"];
                return((x == null) ? TableHeaderScope.NotSet : (TableHeaderScope)x);
            }
            set {
                ViewState["Scope"] = value;
            }
        }
 
 
        /// <devdoc>
        /// <para>Adds header cell attributes to the list of attributes to render.</para>
        /// </devdoc>
        protected override void AddAttributesToRender(HtmlTextWriter writer) {
            base.AddAttributesToRender(writer);
 
            TableHeaderScope scope = Scope;
            if (scope != TableHeaderScope.NotSet) {
                if (scope == TableHeaderScope.Column) {
                    writer.AddAttribute(HtmlTextWriterAttribute.Scope, "col");
                }
                else {
                    writer.AddAttribute(HtmlTextWriterAttribute.Scope, "row");
                }
            }
 
            String abbr = AbbreviatedText;
            if (!String.IsNullOrEmpty(abbr)) {
                writer.AddAttribute(HtmlTextWriterAttribute.Abbr, abbr);
            }
        }
    }
}