Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / xsp / System / Web / UI / WebParts / WebPartZone.cs / 2 / WebPartZone.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls.WebParts { using System; using System.Collections; using System.ComponentModel; using System.Security.Permissions; using System.Web.UI; using System.Web.UI.WebControls; ////// Zone that hosts WebPart controls, and contains a template to specify the contained WebParts. /// [ Designer("System.Web.UI.Design.WebControls.WebParts.WebPartZoneDesigner, " + AssemblyRef.SystemDesign), SupportsEventValidation, ] [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public class WebPartZone : WebPartZoneBase { private ITemplate _zoneTemplate; private bool _registrationComplete; [ Browsable(false), DefaultValue(null), PersistenceMode(PersistenceMode.InnerProperty), TemplateInstance(TemplateInstance.Single) ] public virtual ITemplate ZoneTemplate { get { return _zoneTemplate; } set { if (!DesignMode) { if (_registrationComplete) { throw new InvalidOperationException(SR.GetString(SR.WebPart_SetZoneTemplateTooLate)); } } _zoneTemplate = value; } } private void AddWebPartToList(WebPartCollection webParts, Control control) { WebPart part = control as WebPart; // We used to throw an exception if the template contained a non-whitespace literal. // However, sometimes Venus would insert
tags between the server controls // in the template. So, we now just ignore all literals. if ((part == null) && !(control is LiteralControl)) { WebPartManager manager = WebPartManager; if (manager != null) { part = manager.CreateWebPart(control); } else { part = WebPartManager.CreateWebPartStatic(control); } } if (part != null) { webParts.Add(part); } } protected internal override WebPartCollection GetInitialWebParts() { WebPartCollection webParts = new WebPartCollection(); if (ZoneTemplate != null) { // PERF: Instantiate the template into a special control, that does nothing when a child control // is added. This is more performant because the child control is never parented to the temporary // control, it's ID is never generated, etc. Control container = new NonParentingControl(); ZoneTemplate.InstantiateIn(container); if (container.HasControls()) { ControlCollection controls = container.Controls; foreach (Control control in controls) { if (control is ContentPlaceHolder) { if (control.HasControls()) { Control[] children = new Control[control.Controls.Count]; control.Controls.CopyTo(children, 0); foreach (Control child in children) { AddWebPartToList(webParts, child); } } } else { AddWebPartToList(webParts, control); } } } } return webParts; } protected internal override void OnInit(EventArgs e) { base.OnInit(e); _registrationComplete = true; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Rotation3DAnimation.cs
- XmlSchemaSimpleTypeList.cs
- View.cs
- InstanceOwnerException.cs
- SqlFormatter.cs
- DictionaryContent.cs
- CorrelationResolver.cs
- PriorityChain.cs
- DbConnectionInternal.cs
- LinkLabel.cs
- MetadataHelper.cs
- FileLoadException.cs
- ProcessProtocolHandler.cs
- HitTestResult.cs
- BaseDataListComponentEditor.cs
- MutableAssemblyCacheEntry.cs
- CorrelationKey.cs
- SystemColors.cs
- CollectionChangedEventManager.cs
- FormViewDeleteEventArgs.cs
- printdlgexmarshaler.cs
- HtmlTextArea.cs
- EmbossBitmapEffect.cs
- Localizer.cs
- BindingExpressionBase.cs
- HttpCachePolicy.cs
- TableCell.cs
- TemplateColumn.cs
- StylusPoint.cs
- DataGridTable.cs
- MessageSecurityVersion.cs
- HttpRequestCacheValidator.cs
- ComplexPropertyEntry.cs
- TableItemProviderWrapper.cs
- EncodingNLS.cs
- ValidationError.cs
- TriggerBase.cs
- HelpProvider.cs
- X509ClientCertificateAuthentication.cs
- ComponentSerializationService.cs
- XmlBinaryWriter.cs
- EditorZoneDesigner.cs
- Listener.cs
- FtpWebResponse.cs
- ResourceReferenceExpressionConverter.cs
- SiteMapDataSourceDesigner.cs
- EventLogHandle.cs
- AlignmentYValidation.cs
- EntitySqlQueryCacheEntry.cs
- WebBrowserUriTypeConverter.cs
- FilterableAttribute.cs
- StringWriter.cs
- XmlILOptimizerVisitor.cs
- UIAgentCrashedException.cs
- BitmapInitialize.cs
- WindowsListViewGroupHelper.cs
- RawStylusInputCustomDataList.cs
- SqlUtil.cs
- TabControlAutomationPeer.cs
- FixedElement.cs
- StreamGeometry.cs
- DataContractSerializer.cs
- followingsibling.cs
- WebReference.cs
- OdbcStatementHandle.cs
- BindStream.cs
- CodeArrayCreateExpression.cs
- TemplatedWizardStep.cs
- FieldInfo.cs
- CodeAttributeDeclaration.cs
- FontStretchConverter.cs
- sqlmetadatafactory.cs
- TextFormatterHost.cs
- RtType.cs
- NamedPipeProcessProtocolHandler.cs
- ImageIndexConverter.cs
- SoapServerMethod.cs
- AsnEncodedData.cs
- FindCriteriaApril2005.cs
- GACIdentityPermission.cs
- GuidelineCollection.cs
- TypeGenericEnumerableViewSchema.cs
- XPathPatternBuilder.cs
- XamlPoint3DCollectionSerializer.cs
- validationstate.cs
- GeometryModel3D.cs
- XmlMembersMapping.cs
- XmlNamespaceManager.cs
- OpenTypeLayoutCache.cs
- XmlC14NWriter.cs
- PaintEvent.cs
- ReferenceEqualityComparer.cs
- EnterpriseServicesHelper.cs
- Quaternion.cs
- SafeRegistryKey.cs
- ResourceCollectionInfo.cs
- XmlCharCheckingWriter.cs
- BaseParagraph.cs
- WindowsToolbar.cs
- RoutedCommand.cs