Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / WebControls / ContentPlaceHolder.cs / 1305376 / ContentPlaceHolder.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls { using System; using System.Collections; using System.ComponentModel; using System.Web.UI; using System.Web.Util; internal class ContentPlaceHolderBuilder : ControlBuilder { private string _contentPlaceHolderID; private string _templateName; internal string Name { get { return _templateName; } } public override void Init(TemplateParser parser, ControlBuilder parentBuilder, Type type, string tagName, string ID, IDictionary attribs) { // Copy the ID so that it will be available when BuildObject is called _contentPlaceHolderID = ID; if (parser.FInDesigner) { // shortcut for designer base.Init(parser, parentBuilder, type, tagName, ID, attribs); return; } if (String.IsNullOrEmpty(ID)) { throw new HttpException(SR.GetString(SR.Control_Missing_Attribute, "ID", type.Name)); } _templateName = ID; MasterPageParser masterPageParser = parser as MasterPageParser; if (masterPageParser == null) { throw new HttpException(SR.GetString(SR.ContentPlaceHolder_only_in_master)); } base.Init(parser, parentBuilder, type, tagName, ID, attribs); if (masterPageParser.PlaceHolderList.Contains(Name)) throw new HttpException(SR.GetString(SR.ContentPlaceHolder_duplicate_contentPlaceHolderID, Name)); masterPageParser.PlaceHolderList.Add(Name); } public override object BuildObject() { MasterPage masterPage = TemplateControl as MasterPage; Debug.Assert(masterPage != null || InDesigner); // Instantiate the ContentPlaceHolder ContentPlaceHolder cph = (ContentPlaceHolder) base.BuildObject(); // If the page is providing content, instantiate it in the holder if (PageProvidesMatchingContent(masterPage)) { ITemplate tpl = ((System.Web.UI.ITemplate)(masterPage.ContentTemplates[_contentPlaceHolderID])); masterPage.InstantiateInContentPlaceHolder(cph, tpl); } return cph; } internal override void BuildChildren(object parentObj) { MasterPage masterPage = TemplateControl as MasterPage; // If the page is providing content, don't call the base, which would // instantiate the default content (which we don't want) if (PageProvidesMatchingContent(masterPage)) return; base.BuildChildren(parentObj); } private bool PageProvidesMatchingContent(MasterPage masterPage) { if (masterPage != null && masterPage.ContentTemplates != null && masterPage.ContentTemplates.Contains(_contentPlaceHolderID)) { return true; } return false; } } // Factory used to efficiently create builder instances internal class ContentPlaceHolderBuilderFactory: IWebObjectFactory { object IWebObjectFactory.CreateInstance() { return new ContentPlaceHolderBuilder(); } } [ControlBuilderAttribute(typeof(ContentPlaceHolderBuilder))] [Designer("System.Web.UI.Design.WebControls.ContentPlaceHolderDesigner, " + AssemblyRef.SystemDesign)] [ToolboxItemFilter("System.Web.UI")] [ToolboxItemFilter("Microsoft.VisualStudio.Web.WebForms.MasterPageWebFormDesigner", ToolboxItemFilterType.Require)] [ToolboxData("<{0}:ContentPlaceHolder runat=\"server\">{0}:ContentPlaceHolder>")] public class ContentPlaceHolder : Control, INonBindingContainer { } } // 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
- ObjectQuery_EntitySqlExtensions.cs
- FilteredDataSetHelper.cs
- HtmlTable.cs
- Logging.cs
- PrivilegedConfigurationManager.cs
- CompModHelpers.cs
- CacheMemory.cs
- ContainerSelectorBehavior.cs
- FlowPosition.cs
- PolicyStatement.cs
- RepeaterItemEventArgs.cs
- TextComposition.cs
- UriTemplateTable.cs
- Stylesheet.cs
- SourceLocation.cs
- SvcMapFileSerializer.cs
- Control.cs
- InvalidPrinterException.cs
- FileCodeGroup.cs
- XamlReaderHelper.cs
- ConnectivityStatus.cs
- EventSetter.cs
- TreeBuilder.cs
- NavigationExpr.cs
- OverlappedAsyncResult.cs
- Compiler.cs
- CodeStatement.cs
- SQLGuidStorage.cs
- XmlCountingReader.cs
- BCLDebug.cs
- WebPartVerb.cs
- Win32Native.cs
- TimeZoneInfo.cs
- StoreAnnotationsMap.cs
- CommonObjectSecurity.cs
- BamlLocalizableResourceKey.cs
- EDesignUtil.cs
- ColorContextHelper.cs
- ConditionalDesigner.cs
- DateTimeConstantAttribute.cs
- SvcMapFileLoader.cs
- WindowVisualStateTracker.cs
- baseshape.cs
- MergeFailedEvent.cs
- WorkflowViewService.cs
- SizeFConverter.cs
- AutoGeneratedFieldProperties.cs
- FormConverter.cs
- AutoGeneratedFieldProperties.cs
- BackgroundWorker.cs
- DragSelectionMessageFilter.cs
- CodeExpressionCollection.cs
- ResourcePropertyMemberCodeDomSerializer.cs
- SubclassTypeValidatorAttribute.cs
- FormsAuthenticationUserCollection.cs
- ListView.cs
- TempFiles.cs
- Rect.cs
- HealthMonitoringSectionHelper.cs
- ComponentManagerBroker.cs
- CompiledQuery.cs
- WorkflowDurableInstance.cs
- CmsUtils.cs
- DynamicControl.cs
- UInt32.cs
- SqlStatistics.cs
- EpmCustomContentWriterNodeData.cs
- DetailsViewPagerRow.cs
- MatrixUtil.cs
- ProfilePropertyNameValidator.cs
- BoundColumn.cs
- StretchValidation.cs
- ContractMethodParameterInfo.cs
- IdnMapping.cs
- Rotation3DAnimationBase.cs
- OutOfMemoryException.cs
- altserialization.cs
- CompilerHelpers.cs
- LineUtil.cs
- GorillaCodec.cs
- MarkupExtensionReturnTypeAttribute.cs
- BitmapEffectInputConnector.cs
- Transform3D.cs
- HttpDebugHandler.cs
- MbpInfo.cs
- FileSystemEnumerable.cs
- DataSourceGroupCollection.cs
- IPipelineRuntime.cs
- NullableBoolConverter.cs
- ResXResourceReader.cs
- DataGridViewRowHeaderCell.cs
- SiteMapNode.cs
- StatusBarDrawItemEvent.cs
- TextTreeDeleteContentUndoUnit.cs
- FullTextState.cs
- MethodRental.cs
- DeploymentSection.cs
- OperationResponse.cs
- HostExecutionContextManager.cs
- DeleteMemberBinder.cs