Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / WebControls / ChildTable.cs / 1305376 / 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
- IProvider.cs
- _HeaderInfoTable.cs
- HttpResponse.cs
- Propagator.ExtentPlaceholderCreator.cs
- IntegerFacetDescriptionElement.cs
- EqualityComparer.cs
- DataGridCell.cs
- WebPartUtil.cs
- SigningCredentials.cs
- WorkflowViewService.cs
- XPathAncestorQuery.cs
- WebPartVerb.cs
- Activator.cs
- TypeDescriptionProviderAttribute.cs
- Perspective.cs
- AutomationProperties.cs
- HeaderedContentControl.cs
- BehaviorDragDropEventArgs.cs
- LinqDataSourceUpdateEventArgs.cs
- EastAsianLunisolarCalendar.cs
- TextEffect.cs
- ListViewInsertEventArgs.cs
- XmlIgnoreAttribute.cs
- UnsafeNativeMethods.cs
- ItemList.cs
- ContextMenuService.cs
- WebPartConnectionsCancelVerb.cs
- LinkConverter.cs
- ExponentialEase.cs
- DataServiceConfiguration.cs
- SqlNodeTypeOperators.cs
- PageCopyCount.cs
- ExpressionPrefixAttribute.cs
- OpenTypeCommon.cs
- ResXBuildProvider.cs
- XmlNamedNodeMap.cs
- TimeSpanSecondsOrInfiniteConverter.cs
- EntityModelSchemaGenerator.cs
- TypeSystem.cs
- SafeProcessHandle.cs
- Type.cs
- _SingleItemRequestCache.cs
- TabletCollection.cs
- ExplicitDiscriminatorMap.cs
- BooleanAnimationBase.cs
- TrackingProfileSerializer.cs
- Descriptor.cs
- ProvidersHelper.cs
- SemaphoreSecurity.cs
- HTTP_SERVICE_CONFIG_URLACL_PARAM.cs
- FontStretchConverter.cs
- RegexCompilationInfo.cs
- LabelEditEvent.cs
- XmlBinaryReader.cs
- ZipIOLocalFileBlock.cs
- RuntimeHandles.cs
- ExpressionEditorAttribute.cs
- IntPtr.cs
- CallbackValidator.cs
- RecordManager.cs
- WindowClosedEventArgs.cs
- DbSetClause.cs
- EntityParameter.cs
- SoapExtension.cs
- LocalizableAttribute.cs
- FormatException.cs
- RadioButton.cs
- UnsafeNativeMethods.cs
- EntityContainer.cs
- LocalizabilityAttribute.cs
- HostSecurityManager.cs
- PassportIdentity.cs
- EdmItemError.cs
- SecurityException.cs
- ProtocolsConfigurationEntry.cs
- DataGridBeginningEditEventArgs.cs
- GeneralTransformCollection.cs
- Vector3DKeyFrameCollection.cs
- ObjectIDGenerator.cs
- HttpResponseInternalBase.cs
- AttributeEmitter.cs
- ValidationUtility.cs
- ValueTypePropertyReference.cs
- DataBoundControlParameterTarget.cs
- ActivityMarkupSerializationProvider.cs
- RadioButtonStandardAdapter.cs
- thaishape.cs
- XmlResolver.cs
- DetailsViewDeleteEventArgs.cs
- HtmlGenericControl.cs
- HyperLinkField.cs
- UnsafeNetInfoNativeMethods.cs
- prefixendpointaddressmessagefilter.cs
- TextOutput.cs
- ping.cs
- XmlSchemas.cs
- NetTcpBindingCollectionElement.cs
- ProgramNode.cs
- AppDomainUnloadedException.cs
- ObservableDictionary.cs