2 * Namespace: System.Web.UI.WebControls
\r
5 * Author: Gaurav Vaish
\r
6 * Maintainer: gvaish@iitk.ac.in
\r
7 * Contact: <my_scripts2001@yahoo.com>, <gvaish@iitk.ac.in>
\r
8 * Implementation: yes
\r
11 * (C) Gaurav Vaish (2002)
\r
15 using System.Drawing;
\r
16 using System.Globalization;
\r
18 using System.Web.UI;
\r
20 namespace System.Web.UI.WebControls
\r
22 public class Table: WebControl
\r
24 private TableRowCollection rows;
\r
26 private class TableRowControlCollection : ControlCollection
\r
28 public TableRowControlCollection(Control owner): base(owner)
\r
32 public override void Add(Control child)
\r
34 if(child is TableRow)
\r
39 throw new ArgumentException(HttpRuntime.FormatResourceString("Cannot_Have_Children_Of_Type", "Table", child.GetType().Name.ToString()));
\r
42 public override void AddAt(int index, Control child)
\r
44 if(child is TableRow)
\r
49 throw new ArgumentException(HttpRuntime.FormatResourceString("Cannot_Have_Children_Of_Type", "Table", child.GetType().Name.ToString()));
\r
53 public Table(): base(HtmlTextWriterTag.Table)
\r
57 public virtual string BackImageUrl
\r
61 if(ControlStyleCreated)
\r
62 return ((TableStyle)ControlStyle).BackImageUrl;
\r
66 ((TableStyle)ControlStyle).BackImageUrl = value;
\r
70 public virtual int CellPadding
\r
74 if(ControlStyleCreated)
\r
75 return ((TableStyle)ControlStyle).CellPadding;
\r
79 ((TableStyle)ControlStyle).CellPadding = value;
\r
83 public virtual int CellSpacing
\r
87 if(ControlStyleCreated)
\r
88 return ((TableStyle)ControlStyle).CellSpacing;
\r
92 ((TableStyle)ControlStyle).CellSpacing = value;
\r
96 public virtual GridLines GridLines
\r
100 if(ControlStyleCreated)
\r
101 return ((TableStyle)ControlStyle).GridLines;
\r
105 ((TableStyle)ControlStyle).GridLines = value;
\r
109 public virtual HorizontalAlign HorizontalAlign
\r
113 if(ControlStyleCreated)
\r
114 return ((TableStyle)ControlStyle).HorizontalAlign;
\r
118 ((TableStyle)ControlStyle).HorizontalAlign = value;
\r
122 public virtual TableRowCollection Rows
\r
128 rows = new TableRowCollection(this);
\r
134 protected override void AddAttributesToRender(HtmlTextWriter writer)
\r
136 AddAttributesToRender(writer);
\r
137 if(!BorderColor.IsEmpty)
\r
139 writer.AddAttribute(HtmlTextWriterAttribute.Bordercolor, ColorTranslator.ToHtml(BorderColor));
\r
142 Unit bw = BorderWidth;
\r
143 if(GridLines == GridLines.None)
\r
145 bw = Unit.Pixel(0);
\r
146 } else if(!bw.IsEmpty && bw.Type == UnitType.Pixel)
\r
148 bw = Unit.Pixel(1);
\r
150 writer.AddAttribute(HtmlTextWriterAttribute.Border, ((int)bw.Value).ToString(NumberFormatInfo.InvariantInfo));
\r
153 protected override ControlCollection CreateControlCollection()
\r
155 return new TableRowControlCollection(this);
\r
158 protected override Style CreateControlStyle()
\r
160 return new TableStyle(ViewState);
\r
163 protected override void RenderContents(HtmlTextWriter writer)
\r
165 foreach(object current in Rows)
\r
167 ((TableRow)current).RenderControl(writer);
\r