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
- DeploymentSectionCache.cs
- EndPoint.cs
- SessionStateContainer.cs
- EntityTypeEmitter.cs
- Control.cs
- MsmqIntegrationProcessProtocolHandler.cs
- Hyperlink.cs
- TypeUsage.cs
- PermissionSetEnumerator.cs
- XmlIncludeAttribute.cs
- InputLanguageProfileNotifySink.cs
- XmlParser.cs
- TextParagraphProperties.cs
- InkCanvasAutomationPeer.cs
- PrefixQName.cs
- CodeLinePragma.cs
- Command.cs
- WindowsGraphicsWrapper.cs
- CheckBoxPopupAdapter.cs
- WebBrowserHelper.cs
- MenuItemBinding.cs
- CssTextWriter.cs
- DesignerView.xaml.cs
- SettingsPropertyCollection.cs
- GenericRootAutomationPeer.cs
- DocumentXmlWriter.cs
- XPathEmptyIterator.cs
- WebControlsSection.cs
- AddInProcess.cs
- FilterException.cs
- SmiContextFactory.cs
- Error.cs
- ExpressionNode.cs
- LoginCancelEventArgs.cs
- BaseUriHelper.cs
- DbModificationCommandTree.cs
- HttpClientCredentialType.cs
- StylusButtonCollection.cs
- ToolZone.cs
- ZoneLinkButton.cs
- HitTestResult.cs
- IfJoinedCondition.cs
- XmlComplianceUtil.cs
- ArgIterator.cs
- TypeForwardedToAttribute.cs
- CalendarSelectionChangedEventArgs.cs
- CharacterBuffer.cs
- WhileDesigner.cs
- AnnotationMap.cs
- TextTreeDeleteContentUndoUnit.cs
- ReferenceEqualityComparer.cs
- CollectionBuilder.cs
- validationstate.cs
- ServiceContractDetailViewControl.cs
- Solver.cs
- SignatureHelper.cs
- streamingZipPartStream.cs
- ListenerSessionConnectionReader.cs
- TypeConverterHelper.cs
- GridViewUpdateEventArgs.cs
- SqlDataSourceQueryEditor.cs
- TextEditorLists.cs
- ProcessHostMapPath.cs
- PrtTicket_Public.cs
- ReferenceSchema.cs
- OdbcConnectionOpen.cs
- InstancePersistence.cs
- EndpointDispatcher.cs
- JournalEntryListConverter.cs
- ZipIOExtraField.cs
- DelegateTypeInfo.cs
- TTSVoice.cs
- BinaryWriter.cs
- TextElementEditingBehaviorAttribute.cs
- NotifyInputEventArgs.cs
- IOException.cs
- DataServiceRequestOfT.cs
- MergeLocalizationDirectives.cs
- EntityConnectionStringBuilder.cs
- BooleanAnimationBase.cs
- WindowsBrush.cs
- SQLInt32Storage.cs
- InputProviderSite.cs
- FormatterConverter.cs
- XamlToRtfWriter.cs
- IPPacketInformation.cs
- TextModifierScope.cs
- WebHttpEndpoint.cs
- ByteStorage.cs
- EmptyEnumerator.cs
- TemplateXamlParser.cs
- CompareValidator.cs
- ParameterRetriever.cs
- BitConverter.cs
- WebPartEditorCancelVerb.cs
- XPathSelfQuery.cs
- ViewStateModeByIdAttribute.cs
- DictionaryBase.cs
- LocalizationCodeDomSerializer.cs
- BuilderInfo.cs