Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / xsp / System / Web / UI / WebControls / Table.cs / 1 / Table.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls { using System; using System.Collections; using System.ComponentModel; using System.Drawing; using System.Drawing.Design; using System.Globalization; using System.IO; using System.Web; using System.Security.Permissions; ////// [ DefaultProperty("Rows"), ParseChildren(true, "Rows"), Designer("System.Web.UI.Design.WebControls.TableDesigner, " + AssemblyRef.SystemDesign), SupportsEventValidation, ] [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public class Table : WebControl, IPostBackEventHandler { private TableRowCollection _rows; private bool _hasRowSections; ///Constructs a table and defines its properties. ////// public Table() : base(HtmlTextWriterTag.Table) { } ////// Initializes a new instance of the ///class. /// /// [ WebCategory("Appearance"), DefaultValue(""), Editor("System.Web.UI.Design.ImageUrlEditor, " + AssemblyRef.SystemDesign, typeof(UITypeEditor)), UrlProperty(), WebSysDescription(SR.Table_BackImageUrl) ] public virtual string BackImageUrl { get { if (ControlStyleCreated == false) { return String.Empty; } return((TableStyle)ControlStyle).BackImageUrl; } set { ((TableStyle)ControlStyle).BackImageUrl = value; } } [ DefaultValue(""), Localizable(true), WebCategory("Accessibility"), WebSysDescription(SR.Table_Caption) ] public virtual string Caption { get { string s = (string)ViewState["Caption"]; return (s != null) ? s : String.Empty; } set { ViewState["Caption"] = value; } } [ DefaultValue(TableCaptionAlign.NotSet), WebCategory("Accessibility"), WebSysDescription(SR.WebControl_CaptionAlign) ] public virtual TableCaptionAlign CaptionAlign { get { object o = ViewState["CaptionAlign"]; return (o != null) ? (TableCaptionAlign)o : TableCaptionAlign.NotSet; } set { if ((value < TableCaptionAlign.NotSet) || (value > TableCaptionAlign.Right)) { throw new ArgumentOutOfRangeException("value"); } ViewState["CaptionAlign"] = value; } } ///Indicates the URL of the background image to display /// behind the table. The image will be tiled if it is smaller than the table. ////// [ WebCategory("Appearance"), DefaultValue(-1), WebSysDescription(SR.Table_CellPadding) ] public virtual int CellPadding { get { if (ControlStyleCreated == false) { return -1; } return((TableStyle)ControlStyle).CellPadding; } set { ((TableStyle)ControlStyle).CellPadding = value; } } ///Gets or sets /// the distance (in pixels) between the border and /// the contents of the table cell. ////// [ WebCategory("Appearance"), DefaultValue(-1), WebSysDescription(SR.Table_CellSpacing) ] public virtual int CellSpacing { get { if (ControlStyleCreated == false) { return -1; } return((TableStyle)ControlStyle).CellSpacing; } set { ((TableStyle)ControlStyle).CellSpacing = value; } } ///Gets or /// sets /// the distance (in pixels) between table cells. ////// [ WebCategory("Appearance"), DefaultValue(GridLines.None), WebSysDescription(SR.Table_GridLines) ] public virtual GridLines GridLines { get { if (ControlStyleCreated == false) { return GridLines.None; } return((TableStyle)ControlStyle).GridLines; } set { ((TableStyle)ControlStyle).GridLines = value; } } internal bool HasRowSections { get { return _hasRowSections; } set { _hasRowSections = value; } } ///Gets or sets the gridlines property of the ////// class. /// [ WebCategory("Layout"), DefaultValue(HorizontalAlign.NotSet), WebSysDescription(SR.Table_HorizontalAlign) ] public virtual HorizontalAlign HorizontalAlign { get { if (ControlStyleCreated == false) { return HorizontalAlign.NotSet; } return((TableStyle)ControlStyle).HorizontalAlign; } set { ((TableStyle)ControlStyle).HorizontalAlign = value; } } ///Gets or sets the horizontal alignment of the table within the page. ////// [ MergableProperty(false), WebSysDescription(SR.Table_Rows), PersistenceMode(PersistenceMode.InnerDefaultProperty) ] public virtual TableRowCollection Rows { get { if (_rows == null) _rows = new TableRowCollection(this); return _rows; } } ///Gets the collection of rows within /// the table. ////// /// protected override void AddAttributesToRender(HtmlTextWriter writer) { base.AddAttributesToRender(writer); string borderWidthString = "0"; if (ControlStyleCreated) { if (EnableLegacyRendering || writer is Html32TextWriter) { // Must render bordercolor attribute to affect cell borders. Color borderColor = BorderColor; if (!borderColor.IsEmpty) { writer.AddAttribute(HtmlTextWriterAttribute.Bordercolor, ColorTranslator.ToHtml(borderColor)); } } // GridLines property controls whether we render the "border" attribute, as "border" controls // whether gridlines appear in HTML 3.2. Always render a value for the border attribute. Unit borderWidth = BorderWidth; GridLines gridLines= GridLines; if (gridLines != GridLines.None) { if (borderWidth.IsEmpty || borderWidth.Type != UnitType.Pixel) { borderWidthString = "1"; } else { borderWidthString = ((int)borderWidth.Value).ToString(NumberFormatInfo.InvariantInfo); } } } writer.AddAttribute(HtmlTextWriterAttribute.Border, borderWidthString); } ///A protected method. Adds information about the border /// color and border width HTML attributes to the list of attributes to render. ////// protected override ControlCollection CreateControlCollection() { return new RowControlCollection(this); } ///[To be supplied.] ////// /// protected override Style CreateControlStyle() { return new TableStyle(ViewState); } ///A protected method. Creates a table control style. ////// protected virtual void RaisePostBackEvent(string argument) { ValidateEvent(UniqueID, argument); if(_adapter != null) { IPostBackEventHandler pbeh = _adapter as IPostBackEventHandler; if (pbeh != null) { pbeh.RaisePostBackEvent(argument); } } } ///[To be supplied.] ////// /// Renders out the caption of the table if needed, before any rows get rendered. /// public override void RenderBeginTag(HtmlTextWriter writer) { base.RenderBeginTag(writer); string caption = Caption; if (caption.Length != 0) { TableCaptionAlign alignment = CaptionAlign; if (alignment != TableCaptionAlign.NotSet) { string alignValue = "Right"; switch (alignment) { case TableCaptionAlign.Top: alignValue = "Top"; break; case TableCaptionAlign.Bottom: alignValue = "Bottom"; break; case TableCaptionAlign.Left: alignValue = "Left"; break; } writer.AddAttribute(HtmlTextWriterAttribute.Align, alignValue); } writer.RenderBeginTag(HtmlTextWriterTag.Caption); writer.Write(caption); writer.RenderEndTag(); } } ////// Render the table rows. /// protected internal override void RenderContents(HtmlTextWriter writer) { TableRowCollection rows = Rows; int rowCount = rows.Count; if (rowCount > 0) { if (HasRowSections) { TableRowSection currentSection = TableRowSection.TableHeader; bool openedTag = false; foreach (TableRow row in rows) { if (row.TableSection < currentSection) { // throw if table sections aren't in order throw new HttpException(SR.GetString(SR.Table_SectionsMustBeInOrder, ID)); } if (currentSection < row.TableSection || (row.TableSection == TableRowSection.TableHeader && !openedTag)) { if (openedTag) { writer.RenderEndTag(); } currentSection = row.TableSection; openedTag = true; switch (currentSection) { case TableRowSection.TableHeader: writer.RenderBeginTag(HtmlTextWriterTag.Thead); break; case TableRowSection.TableBody: writer.RenderBeginTag(HtmlTextWriterTag.Tbody); break; case TableRowSection.TableFooter: writer.RenderBeginTag(HtmlTextWriterTag.Tfoot); break; } } row.RenderControl(writer); } writer.RenderEndTag(); } else { foreach (TableRow row in rows) { row.RenderControl(writer); } } } } void IPostBackEventHandler.RaisePostBackEvent(string eventArgument) { RaisePostBackEvent(eventArgument); } ////// protected class RowControlCollection : ControlCollection { internal RowControlCollection (Control owner) : base(owner) { } ///[To be supplied.] ////// public override void Add(Control child) { if (child is TableRow) base.Add(child); else throw new ArgumentException(SR.GetString(SR.Cannot_Have_Children_Of_Type, "Table", child.GetType().Name.ToString(CultureInfo.InvariantCulture))); // throw an exception here } ///Adds the specified ///object to the collection. The new control is added /// to the end of the array. /// public override void AddAt(int index, Control child) { if (child is TableRow) base.AddAt(index, child); else throw new ArgumentException(SR.GetString(SR.Cannot_Have_Children_Of_Type, "Table", child.GetType().Name.ToString(CultureInfo.InvariantCulture))); // throw an exception here } } // class RowControlCollection } // class Table } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //Adds the specified ///object to the collection. The new control is added /// to the array at the specified index location. // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls { using System; using System.Collections; using System.ComponentModel; using System.Drawing; using System.Drawing.Design; using System.Globalization; using System.IO; using System.Web; using System.Security.Permissions; ////// [ DefaultProperty("Rows"), ParseChildren(true, "Rows"), Designer("System.Web.UI.Design.WebControls.TableDesigner, " + AssemblyRef.SystemDesign), SupportsEventValidation, ] [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public class Table : WebControl, IPostBackEventHandler { private TableRowCollection _rows; private bool _hasRowSections; ///Constructs a table and defines its properties. ////// public Table() : base(HtmlTextWriterTag.Table) { } ////// Initializes a new instance of the ///class. /// /// [ WebCategory("Appearance"), DefaultValue(""), Editor("System.Web.UI.Design.ImageUrlEditor, " + AssemblyRef.SystemDesign, typeof(UITypeEditor)), UrlProperty(), WebSysDescription(SR.Table_BackImageUrl) ] public virtual string BackImageUrl { get { if (ControlStyleCreated == false) { return String.Empty; } return((TableStyle)ControlStyle).BackImageUrl; } set { ((TableStyle)ControlStyle).BackImageUrl = value; } } [ DefaultValue(""), Localizable(true), WebCategory("Accessibility"), WebSysDescription(SR.Table_Caption) ] public virtual string Caption { get { string s = (string)ViewState["Caption"]; return (s != null) ? s : String.Empty; } set { ViewState["Caption"] = value; } } [ DefaultValue(TableCaptionAlign.NotSet), WebCategory("Accessibility"), WebSysDescription(SR.WebControl_CaptionAlign) ] public virtual TableCaptionAlign CaptionAlign { get { object o = ViewState["CaptionAlign"]; return (o != null) ? (TableCaptionAlign)o : TableCaptionAlign.NotSet; } set { if ((value < TableCaptionAlign.NotSet) || (value > TableCaptionAlign.Right)) { throw new ArgumentOutOfRangeException("value"); } ViewState["CaptionAlign"] = value; } } ///Indicates the URL of the background image to display /// behind the table. The image will be tiled if it is smaller than the table. ////// [ WebCategory("Appearance"), DefaultValue(-1), WebSysDescription(SR.Table_CellPadding) ] public virtual int CellPadding { get { if (ControlStyleCreated == false) { return -1; } return((TableStyle)ControlStyle).CellPadding; } set { ((TableStyle)ControlStyle).CellPadding = value; } } ///Gets or sets /// the distance (in pixels) between the border and /// the contents of the table cell. ////// [ WebCategory("Appearance"), DefaultValue(-1), WebSysDescription(SR.Table_CellSpacing) ] public virtual int CellSpacing { get { if (ControlStyleCreated == false) { return -1; } return((TableStyle)ControlStyle).CellSpacing; } set { ((TableStyle)ControlStyle).CellSpacing = value; } } ///Gets or /// sets /// the distance (in pixels) between table cells. ////// [ WebCategory("Appearance"), DefaultValue(GridLines.None), WebSysDescription(SR.Table_GridLines) ] public virtual GridLines GridLines { get { if (ControlStyleCreated == false) { return GridLines.None; } return((TableStyle)ControlStyle).GridLines; } set { ((TableStyle)ControlStyle).GridLines = value; } } internal bool HasRowSections { get { return _hasRowSections; } set { _hasRowSections = value; } } ///Gets or sets the gridlines property of the ////// class. /// [ WebCategory("Layout"), DefaultValue(HorizontalAlign.NotSet), WebSysDescription(SR.Table_HorizontalAlign) ] public virtual HorizontalAlign HorizontalAlign { get { if (ControlStyleCreated == false) { return HorizontalAlign.NotSet; } return((TableStyle)ControlStyle).HorizontalAlign; } set { ((TableStyle)ControlStyle).HorizontalAlign = value; } } ///Gets or sets the horizontal alignment of the table within the page. ////// [ MergableProperty(false), WebSysDescription(SR.Table_Rows), PersistenceMode(PersistenceMode.InnerDefaultProperty) ] public virtual TableRowCollection Rows { get { if (_rows == null) _rows = new TableRowCollection(this); return _rows; } } ///Gets the collection of rows within /// the table. ////// /// protected override void AddAttributesToRender(HtmlTextWriter writer) { base.AddAttributesToRender(writer); string borderWidthString = "0"; if (ControlStyleCreated) { if (EnableLegacyRendering || writer is Html32TextWriter) { // Must render bordercolor attribute to affect cell borders. Color borderColor = BorderColor; if (!borderColor.IsEmpty) { writer.AddAttribute(HtmlTextWriterAttribute.Bordercolor, ColorTranslator.ToHtml(borderColor)); } } // GridLines property controls whether we render the "border" attribute, as "border" controls // whether gridlines appear in HTML 3.2. Always render a value for the border attribute. Unit borderWidth = BorderWidth; GridLines gridLines= GridLines; if (gridLines != GridLines.None) { if (borderWidth.IsEmpty || borderWidth.Type != UnitType.Pixel) { borderWidthString = "1"; } else { borderWidthString = ((int)borderWidth.Value).ToString(NumberFormatInfo.InvariantInfo); } } } writer.AddAttribute(HtmlTextWriterAttribute.Border, borderWidthString); } ///A protected method. Adds information about the border /// color and border width HTML attributes to the list of attributes to render. ////// protected override ControlCollection CreateControlCollection() { return new RowControlCollection(this); } ///[To be supplied.] ////// /// protected override Style CreateControlStyle() { return new TableStyle(ViewState); } ///A protected method. Creates a table control style. ////// protected virtual void RaisePostBackEvent(string argument) { ValidateEvent(UniqueID, argument); if(_adapter != null) { IPostBackEventHandler pbeh = _adapter as IPostBackEventHandler; if (pbeh != null) { pbeh.RaisePostBackEvent(argument); } } } ///[To be supplied.] ////// /// Renders out the caption of the table if needed, before any rows get rendered. /// public override void RenderBeginTag(HtmlTextWriter writer) { base.RenderBeginTag(writer); string caption = Caption; if (caption.Length != 0) { TableCaptionAlign alignment = CaptionAlign; if (alignment != TableCaptionAlign.NotSet) { string alignValue = "Right"; switch (alignment) { case TableCaptionAlign.Top: alignValue = "Top"; break; case TableCaptionAlign.Bottom: alignValue = "Bottom"; break; case TableCaptionAlign.Left: alignValue = "Left"; break; } writer.AddAttribute(HtmlTextWriterAttribute.Align, alignValue); } writer.RenderBeginTag(HtmlTextWriterTag.Caption); writer.Write(caption); writer.RenderEndTag(); } } ////// Render the table rows. /// protected internal override void RenderContents(HtmlTextWriter writer) { TableRowCollection rows = Rows; int rowCount = rows.Count; if (rowCount > 0) { if (HasRowSections) { TableRowSection currentSection = TableRowSection.TableHeader; bool openedTag = false; foreach (TableRow row in rows) { if (row.TableSection < currentSection) { // throw if table sections aren't in order throw new HttpException(SR.GetString(SR.Table_SectionsMustBeInOrder, ID)); } if (currentSection < row.TableSection || (row.TableSection == TableRowSection.TableHeader && !openedTag)) { if (openedTag) { writer.RenderEndTag(); } currentSection = row.TableSection; openedTag = true; switch (currentSection) { case TableRowSection.TableHeader: writer.RenderBeginTag(HtmlTextWriterTag.Thead); break; case TableRowSection.TableBody: writer.RenderBeginTag(HtmlTextWriterTag.Tbody); break; case TableRowSection.TableFooter: writer.RenderBeginTag(HtmlTextWriterTag.Tfoot); break; } } row.RenderControl(writer); } writer.RenderEndTag(); } else { foreach (TableRow row in rows) { row.RenderControl(writer); } } } } void IPostBackEventHandler.RaisePostBackEvent(string eventArgument) { RaisePostBackEvent(eventArgument); } ////// protected class RowControlCollection : ControlCollection { internal RowControlCollection (Control owner) : base(owner) { } ///[To be supplied.] ////// public override void Add(Control child) { if (child is TableRow) base.Add(child); else throw new ArgumentException(SR.GetString(SR.Cannot_Have_Children_Of_Type, "Table", child.GetType().Name.ToString(CultureInfo.InvariantCulture))); // throw an exception here } ///Adds the specified ///object to the collection. The new control is added /// to the end of the array. /// public override void AddAt(int index, Control child) { if (child is TableRow) base.AddAt(index, child); else throw new ArgumentException(SR.GetString(SR.Cannot_Have_Children_Of_Type, "Table", child.GetType().Name.ToString(CultureInfo.InvariantCulture))); // throw an exception here } } // class RowControlCollection } // class Table } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.Adds the specified ///object to the collection. The new control is added /// to the array at the specified index location.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BindingExpressionBase.cs
- IChannel.cs
- SqlUDTStorage.cs
- SoapExtensionReflector.cs
- ToolStripKeyboardHandlingService.cs
- InstanceContext.cs
- DispatcherSynchronizationContext.cs
- MarginsConverter.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- UnsafeNativeMethods.cs
- FilteredDataSetHelper.cs
- TableItemPatternIdentifiers.cs
- HtmlSelect.cs
- EventlogProvider.cs
- QEncodedStream.cs
- XmlSchemaException.cs
- OdbcReferenceCollection.cs
- RemotingAttributes.cs
- NamedPipeAppDomainProtocolHandler.cs
- LowerCaseStringConverter.cs
- RoleGroup.cs
- SqlNotificationEventArgs.cs
- ConversionHelper.cs
- SafeProcessHandle.cs
- Application.cs
- WebPartEditorApplyVerb.cs
- EntityDesignerUtils.cs
- XamlFilter.cs
- NativeMethods.cs
- DesignSurfaceServiceContainer.cs
- PackageDigitalSignature.cs
- ClickablePoint.cs
- EntityClientCacheKey.cs
- ActivityExecutionContext.cs
- ToolStripGrip.cs
- WindowsListViewGroupHelper.cs
- FixedTextContainer.cs
- Timer.cs
- StrongName.cs
- DesignerActionItem.cs
- CombinedTcpChannel.cs
- TrackingRecordPreFilter.cs
- MemberPathMap.cs
- ValueProviderWrapper.cs
- ProxyWebPartManager.cs
- StringWriter.cs
- UpdateTranslator.cs
- FullTextState.cs
- RouteValueDictionary.cs
- XomlCompiler.cs
- UnhandledExceptionEventArgs.cs
- FlowDocumentReader.cs
- __Filters.cs
- RepeatBehaviorConverter.cs
- IndexedString.cs
- ResXResourceSet.cs
- AbsoluteQuery.cs
- DataServiceRequestException.cs
- RouteCollection.cs
- HtmlEmptyTagControlBuilder.cs
- SessionPageStatePersister.cs
- ColorKeyFrameCollection.cs
- DefaultTraceListener.cs
- CheckedPointers.cs
- QilReference.cs
- SqlSelectStatement.cs
- IPEndPointCollection.cs
- EntityDataSourceDesignerHelper.cs
- XslNumber.cs
- EventLogTraceListener.cs
- IconEditor.cs
- PkcsUtils.cs
- DbCommandDefinition.cs
- EdmSchemaAttribute.cs
- SpellerError.cs
- ToolStripDropDownButton.cs
- COSERVERINFO.cs
- SqlBooleanizer.cs
- ReaderOutput.cs
- XmlNotation.cs
- TcpServerChannel.cs
- HostingPreferredMapPath.cs
- MsmqIntegrationAppDomainProtocolHandler.cs
- HTTPRemotingHandler.cs
- Shape.cs
- TreeViewEvent.cs
- PartialCachingAttribute.cs
- MessageDecoder.cs
- CustomCategoryAttribute.cs
- PathFigureCollection.cs
- AspNetHostingPermission.cs
- ResourceReferenceExpressionConverter.cs
- Membership.cs
- Mappings.cs
- TextAnchor.cs
- _ContextAwareResult.cs
- BitStack.cs
- FieldCollectionEditor.cs
- StreamInfo.cs
- CursorInteropHelper.cs