//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //------------------------------------------------------------------------------ namespace System.Web.UI.HtmlControls { using System; using System.Reflection; using System.Collections; using System.ComponentModel; using System.Globalization; using System.Web; using System.Web.UI; using System.Security.Permissions; /// /// Defines the properties, methods, and events for the /// /// control that allows programmatic access on the /// server to the HTML <table> element. /// [ ParseChildren(true, "Rows") ] public class HtmlTable : HtmlContainerControl { HtmlTableRowCollection rows; /// /// Initializes a new instance of the class. /// public HtmlTable() : base("table") { } /// /// Gets or sets the alignment of content within the /// control. /// [ WebCategory("Layout"), DefaultValue(""), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public string Align { get { string s = Attributes["align"]; return((s != null) ? s : String.Empty); } set { Attributes["align"] = MapStringAttributeToString(value); } } /// /// Gets or sets the background color of an /// control. /// [ WebCategory("Appearance"), DefaultValue(""), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public string BgColor { get { string s = Attributes["bgcolor"]; return((s != null) ? s : String.Empty); } set { Attributes["bgcolor"] = MapStringAttributeToString(value); } } /// /// Gets or sets the width of the border, in pixels, of an /// control. /// [ WebCategory("Appearance"), DefaultValue(-1), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public int Border { get { string s = Attributes["border"]; return((s != null) ? Int32.Parse(s, CultureInfo.InvariantCulture) : -1); } set { Attributes["border"] = MapIntegerAttributeToString(value); } } /// /// Gets or sets the border color of an control. /// [ WebCategory("Appearance"), DefaultValue(""), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public string BorderColor { get { string s = Attributes["bordercolor"]; return((s != null) ? s : String.Empty); } set { Attributes["bordercolor"] = MapStringAttributeToString(value); } } /// /// /// Gets or sets the cell padding, in pixels, for an control. /// /// [ WebCategory("Appearance"), DefaultValue(""), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public int CellPadding { get { string s = Attributes["cellpadding"]; return((s != null) ? Int32.Parse(s, CultureInfo.InvariantCulture) : -1); } set { Attributes["cellpadding"] = MapIntegerAttributeToString(value); } } /// /// /// Gets or sets the cell spacing, in pixels, for an control. /// /// [ WebCategory("Appearance"), DefaultValue(""), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public int CellSpacing { get { string s = Attributes["cellspacing"]; return((s != null) ? Int32.Parse(s, CultureInfo.InvariantCulture) : -1); } set { Attributes["cellspacing"] = MapIntegerAttributeToString(value); } } /// /// [To be supplied.] /// public override string InnerHtml { get { throw new NotSupportedException(SR.GetString(SR.InnerHtml_not_supported, this.GetType().Name)); } set { throw new NotSupportedException(SR.GetString(SR.InnerHtml_not_supported, this.GetType().Name)); } } /// /// [To be supplied.] /// public override string InnerText { get { throw new NotSupportedException(SR.GetString(SR.InnerText_not_supported, this.GetType().Name)); } set { throw new NotSupportedException(SR.GetString(SR.InnerText_not_supported, this.GetType().Name)); } } /// /// /// Gets or sets the height of an /// control. /// /// [ WebCategory("Layout"), DefaultValue(""), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public string Height { get { string s = Attributes["height"]; return((s != null) ? s : String.Empty); } set { Attributes["height"] = MapStringAttributeToString(value); } } /// /// /// Gets or sets the width of an control. /// /// [ WebCategory("Layout"), DefaultValue(""), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) ] public string Width { get { string s = Attributes["width"]; return((s != null) ? s : String.Empty); } set { Attributes["width"] = MapStringAttributeToString(value); } } /// /// /// Gets a collection that contains all of the rows in an /// control. An empty collection is returned if no /// <tr> elements are contained within the control. /// /// [ Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), IgnoreUnknownContent() ] public virtual HtmlTableRowCollection Rows { get { if (rows == null) rows = new HtmlTableRowCollection(this); return rows; } } /// /// /// protected internal override void RenderChildren(HtmlTextWriter writer) { writer.WriteLine(); writer.Indent++; base.RenderChildren(writer); writer.Indent--; } /// /// /// protected override void RenderEndTag(HtmlTextWriter writer) { base.RenderEndTag(writer); writer.WriteLine(); } /// /// [To be supplied.] /// protected override ControlCollection CreateControlCollection() { return new HtmlTableRowControlCollection(this); } /// /// [To be supplied.] /// protected class HtmlTableRowControlCollection : ControlCollection { internal HtmlTableRowControlCollection (Control owner) : base(owner) { } /// /// Adds the specified object to the collection. The new control is added /// to the end of the array. /// public override void Add(Control child) { if (child is HtmlTableRow) base.Add(child); else throw new ArgumentException(SR.GetString(SR.Cannot_Have_Children_Of_Type, "HtmlTable", child.GetType().Name.ToString(CultureInfo.InvariantCulture))); // throw an exception here } /// /// Adds the specified object to the collection. The new control is added /// to the array at the specified index location. /// public override void AddAt(int index, Control child) { if (child is HtmlTableRow) base.AddAt(index, child); else throw new ArgumentException(SR.GetString(SR.Cannot_Have_Children_Of_Type, "HtmlTable", child.GetType().Name.ToString(CultureInfo.InvariantCulture))); // throw an exception here } } // class HtmlTableRowControlCollection } }