e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
188 lines
6.2 KiB
C#
188 lines
6.2 KiB
C#
//------------------------------------------------------------------------------
|
|
// <copyright file="TableRow.cs" company="Microsoft">
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// </copyright>
|
|
//------------------------------------------------------------------------------
|
|
|
|
namespace System.Web.UI.WebControls {
|
|
|
|
using System;
|
|
using System.ComponentModel;
|
|
using System.Globalization;
|
|
using System.Web;
|
|
using System.Web.UI;
|
|
using System.Web.Util;
|
|
|
|
/// <devdoc>
|
|
/// <para> Encapsulates a row
|
|
/// within a table.</para>
|
|
/// </devdoc>
|
|
[
|
|
Bindable(false),
|
|
DefaultProperty("Cells"),
|
|
ParseChildren(true, "Cells"),
|
|
ToolboxItem(false)
|
|
]
|
|
[Designer("System.Web.UI.Design.WebControls.PreviewControlDesigner, " + AssemblyRef.SystemDesign)]
|
|
public class TableRow : WebControl {
|
|
|
|
TableCellCollection cells;
|
|
|
|
|
|
/// <devdoc>
|
|
/// <para>
|
|
/// Initializes a new instance of the <see cref='System.Web.UI.WebControls.TableRow'/> class.
|
|
/// </para>
|
|
/// </devdoc>
|
|
public TableRow() : base(HtmlTextWriterTag.Tr) {
|
|
PreventAutoID();
|
|
}
|
|
|
|
|
|
/// <devdoc>
|
|
/// <para> Indicates the table cell collection of the table
|
|
/// row. This property is read-only.</para>
|
|
/// </devdoc>
|
|
[
|
|
MergableProperty(false),
|
|
WebSysDescription(SR.TableRow_Cells),
|
|
PersistenceMode(PersistenceMode.InnerDefaultProperty)
|
|
]
|
|
public virtual TableCellCollection Cells {
|
|
get {
|
|
if (cells == null)
|
|
cells = new TableCellCollection(this);
|
|
return cells;
|
|
}
|
|
}
|
|
|
|
|
|
/// <devdoc>
|
|
/// <para> Indicates the horizontal alignment of the content within the table cells.</para>
|
|
/// </devdoc>
|
|
[
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/// <devdoc>
|
|
/// <para>Indicates the vertical alignment of the content within the cell.</para>
|
|
/// </devdoc>
|
|
[
|
|
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;
|
|
}
|
|
}
|
|
|
|
|
|
/// <internalonly/>
|
|
/// <devdoc>
|
|
/// <para>A protected method. Creates a table item control style.</para>
|
|
/// </devdoc>
|
|
protected override Style CreateControlStyle() {
|
|
return new TableItemStyle(ViewState);
|
|
}
|
|
|
|
|
|
/// <devdoc>
|
|
/// <para>[To be supplied.]</para>
|
|
/// </devdoc>
|
|
protected override ControlCollection CreateControlCollection() {
|
|
return new CellControlCollection(this);
|
|
}
|
|
|
|
|
|
/// <devdoc>
|
|
/// <para>[To be supplied.]</para>
|
|
/// </devdoc>
|
|
protected class CellControlCollection : ControlCollection {
|
|
|
|
internal CellControlCollection (Control owner) : base(owner) {
|
|
}
|
|
|
|
|
|
/// <devdoc>
|
|
/// <para>Adds the specified <see cref='System.Web.UI.Control'/> object to the collection. The new control is added
|
|
/// to the end of the array.</para>
|
|
/// </devdoc>
|
|
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
|
|
}
|
|
|
|
|
|
/// <devdoc>
|
|
/// <para>Adds the specified <see cref='System.Web.UI.Control'/> object to the collection. The new control is added
|
|
/// to the array at the specified index location.</para>
|
|
/// </devdoc>
|
|
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
|
|
|
|
}
|
|
}
|
|
|