Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / xsp / System / Web / UI / WebControls / ChildTable.cs / 5 / ChildTable.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls { using System; using System.ComponentModel; using System.Web.UI; using System.Web.Util; [ ToolboxItem(false), SupportsEventValidation, ] ////// /// Used by composite controls that are based on a table, that only render /// their contents. /// Used to render out an ID attribute representing the parent composite control /// if an ID is not actually set on this table. /// internal class ChildTable : Table { private int _parentLevel; private string _parentID; private bool _parentIDSet; ///internal ChildTable() : this(1) { } /// internal ChildTable(int parentLevel) { Debug.Assert(parentLevel >= 1); _parentLevel = parentLevel; _parentIDSet = false; } internal ChildTable(string parentID) { _parentID = parentID; _parentIDSet = true; } /// protected override void AddAttributesToRender(HtmlTextWriter writer) { base.AddAttributesToRender(writer); string parentID = _parentID; if (!_parentIDSet) { parentID = GetParentID(); } if (parentID != null) { writer.AddAttribute(HtmlTextWriterAttribute.Id, parentID); } } /// /// Gets the ClientID of the parent whose ID is supposed to be used in the rendering. /// private string GetParentID() { if (ID != null) { return null; } Control parent = this; for (int i = 0; i < _parentLevel; i++) { parent = parent.Parent; if (parent == null) { break; } } Debug.Assert(parent != null); if (parent != null) { string id = parent.ID; if (!String.IsNullOrEmpty(id)) { return parent.ClientID; } } return null; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls { using System; using System.ComponentModel; using System.Web.UI; using System.Web.Util; [ ToolboxItem(false), SupportsEventValidation, ] ////// /// Used by composite controls that are based on a table, that only render /// their contents. /// Used to render out an ID attribute representing the parent composite control /// if an ID is not actually set on this table. /// internal class ChildTable : Table { private int _parentLevel; private string _parentID; private bool _parentIDSet; ///internal ChildTable() : this(1) { } /// internal ChildTable(int parentLevel) { Debug.Assert(parentLevel >= 1); _parentLevel = parentLevel; _parentIDSet = false; } internal ChildTable(string parentID) { _parentID = parentID; _parentIDSet = true; } /// protected override void AddAttributesToRender(HtmlTextWriter writer) { base.AddAttributesToRender(writer); string parentID = _parentID; if (!_parentIDSet) { parentID = GetParentID(); } if (parentID != null) { writer.AddAttribute(HtmlTextWriterAttribute.Id, parentID); } } /// /// Gets the ClientID of the parent whose ID is supposed to be used in the rendering. /// private string GetParentID() { if (ID != null) { return null; } Control parent = this; for (int i = 0; i < _parentLevel; i++) { parent = parent.Parent; if (parent == null) { break; } } Debug.Assert(parent != null); if (parent != null) { string id = parent.ID; if (!String.IsNullOrEmpty(id)) { return parent.ClientID; } } return null; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- QueueProcessor.cs
- isolationinterop.cs
- AsyncCompletedEventArgs.cs
- TextTreeTextElementNode.cs
- ListViewUpdatedEventArgs.cs
- NetworkInformationException.cs
- EmissiveMaterial.cs
- PolyLineSegment.cs
- ComplexBindingPropertiesAttribute.cs
- InternalBase.cs
- XXXInfos.cs
- RectValueSerializer.cs
- StrokeCollectionDefaultValueFactory.cs
- SafeCancelMibChangeNotify.cs
- SqlDataSourceSummaryPanel.cs
- UIElement.cs
- GradientBrush.cs
- ToolStripMenuItemDesigner.cs
- AnimationStorage.cs
- StringAnimationUsingKeyFrames.cs
- UnsafeNativeMethods.cs
- PanelStyle.cs
- DeferrableContent.cs
- ForeignKeyConstraint.cs
- ThreadStateException.cs
- ProcessThreadCollection.cs
- TableLayoutSettingsTypeConverter.cs
- UnsafeNetInfoNativeMethods.cs
- Popup.cs
- ButtonRenderer.cs
- HybridWebProxyFinder.cs
- ADConnectionHelper.cs
- X509Certificate2.cs
- WebPartMenu.cs
- InvalidContentTypeException.cs
- SortKey.cs
- HttpApplicationStateBase.cs
- DecimalAverageAggregationOperator.cs
- StructuredTypeInfo.cs
- ZipPackage.cs
- Model3DGroup.cs
- CompModSwitches.cs
- DynamicContractTypeBuilder.cs
- Viewport2DVisual3D.cs
- metrodevice.cs
- ExtensionQuery.cs
- BatchParser.cs
- DataGridViewTopRowAccessibleObject.cs
- SafeNativeMethods.cs
- UnsafeMethods.cs
- CodeTypeDeclaration.cs
- VisualSerializer.cs
- JumpItem.cs
- FontEmbeddingManager.cs
- StatusStrip.cs
- EventItfInfo.cs
- DataGridColumnEventArgs.cs
- StatusBarPanel.cs
- TriState.cs
- LineBreak.cs
- ComponentGlyph.cs
- SudsCommon.cs
- MultipleViewPattern.cs
- XPathNavigatorKeyComparer.cs
- DataGridViewAdvancedBorderStyle.cs
- RNGCryptoServiceProvider.cs
- HttpHandler.cs
- PointHitTestParameters.cs
- EditCommandColumn.cs
- PhysicalOps.cs
- PagedDataSource.cs
- StringUtil.cs
- PointLightBase.cs
- RemotingHelper.cs
- StateBag.cs
- OdbcEnvironment.cs
- RoutedEvent.cs
- NativeMethods.cs
- ComponentCollection.cs
- SSmlParser.cs
- WebBrowserBase.cs
- ExpressionServices.cs
- PageThemeBuildProvider.cs
- ASCIIEncoding.cs
- WSHttpSecurityElement.cs
- Regex.cs
- XmlProcessingInstruction.cs
- BuildProviderUtils.cs
- EncryptedKey.cs
- MissingManifestResourceException.cs
- itemelement.cs
- ScriptResourceHandler.cs
- AppDomainInstanceProvider.cs
- ErrorFormatterPage.cs
- SerializerDescriptor.cs
- Vector3DAnimationBase.cs
- FrameworkContentElementAutomationPeer.cs
- DoubleAnimationUsingPath.cs
- _NTAuthentication.cs
- PropertyValueChangedEvent.cs