//------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //------------------------------------------------------------------------------ namespace System.Web.UI.WebControls { using System; using System.ComponentModel; using System.Globalization; using System.Web; using System.Web.UI; using System.Web.Util; /// /// Encapsulates a row /// within a table. /// [ Bindable(false), DefaultProperty("Cells"), ParseChildren(true, "Cells"), ToolboxItem(false) ] [Designer("System.Web.UI.Design.WebControls.PreviewControlDesigner, " + AssemblyRef.SystemDesign)] public class TableRow : WebControl { TableCellCollection cells; /// /// /// Initializes a new instance of the class. /// /// public TableRow() : base(HtmlTextWriterTag.Tr) { PreventAutoID(); } /// /// Indicates the table cell collection of the table /// row. This property is read-only. /// [ MergableProperty(false), WebSysDescription(SR.TableRow_Cells), PersistenceMode(PersistenceMode.InnerDefaultProperty) ] public virtual TableCellCollection Cells { get { if (cells == null) cells = new TableCellCollection(this); return cells; } } /// /// Indicates the horizontal alignment of the content within the table cells. /// [ WebCategory("Layout"), DefaultValue(HorizontalAlign.NotSet), WebSysDescription(SR.TableItem_HorizontalAlign) ] public virtual HorizontalAlign HorizontalAlign { get { if (ControlStyleCreated == false) { return HorizontalAlign.NotSet; } return ((TableItemStyle)ControlStyle).HorizontalAlign; } set { ((TableItemStyle)ControlStyle).HorizontalAlign = value; } } public override bool SupportsDisabledAttribute { get { return RenderingCompatibility < VersionUtil.Framework40; } } [ WebCategory("Accessibility"), DefaultValue(TableRowSection.TableBody), WebSysDescription(SR.TableRow_TableSection) ] public virtual TableRowSection TableSection { get { object o = ViewState["TableSection"]; return((o == null) ? TableRowSection.TableBody : (TableRowSection)o); } set { if (value < TableRowSection.TableHeader || value > TableRowSection.TableFooter) { throw new ArgumentOutOfRangeException("value"); } ViewState["TableSection"] = value; if (value != TableRowSection.TableBody) { Control parent = Parent; if (parent != null) { Table parentTable = parent as Table; if (parentTable != null) { parentTable.HasRowSections = true; } } } } } /// /// Indicates the vertical alignment of the content within the cell. /// [ WebCategory("Layout"), DefaultValue(VerticalAlign.NotSet), WebSysDescription(SR.TableItem_VerticalAlign) ] public virtual VerticalAlign VerticalAlign { get { if (ControlStyleCreated == false) { return VerticalAlign.NotSet; } return ((TableItemStyle)ControlStyle).VerticalAlign; } set { ((TableItemStyle)ControlStyle).VerticalAlign = value; } } /// /// /// A protected method. Creates a table item control style. /// protected override Style CreateControlStyle() { return new TableItemStyle(ViewState); } /// /// [To be supplied.] /// protected override ControlCollection CreateControlCollection() { return new CellControlCollection(this); } /// /// [To be supplied.] /// protected class CellControlCollection : ControlCollection { internal CellControlCollection (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 TableCell) base.Add(child); else throw new ArgumentException(SR.GetString(SR.Cannot_Have_Children_Of_Type, "TableRow", 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 TableCell) base.AddAt(index, child); else throw new ArgumentException(SR.GetString(SR.Cannot_Have_Children_Of_Type, "TableRow", child.GetType().Name.ToString(CultureInfo.InvariantCulture))); // throw an exception here } } // class CellControlCollection } }