Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / DEVDIV / depot / DevDiv / releases / whidbey / QFE / ndp / fx / src / xsp / System / Web / UI / WebParts / WebPartCollection.cs / 2 / WebPartCollection.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls.WebParts { using System; using System.Collections; using System.Diagnostics; using System.Globalization; using System.Security.Permissions; ////// Read-only collection of WebParts. Collection cannot be modified after contstruction. /// [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] public sealed class WebPartCollection : ReadOnlyCollectionBase { public WebPartCollection() { } public WebPartCollection(ICollection webParts) { if (webParts == null) { throw new ArgumentNullException("webParts"); } foreach (object obj in webParts) { if (obj == null) { throw new ArgumentException(SR.GetString(SR.Collection_CantAddNull), "webParts"); } if (!(obj is WebPart)) { throw new ArgumentException(SR.GetString(SR.Collection_InvalidType, "WebPart"), "webParts"); } InnerList.Add(obj); } } internal int Add(WebPart value) { Debug.Assert(value != null); return InnerList.Add(value); } public bool Contains(WebPart value) { return InnerList.Contains(value); } public int IndexOf(WebPart value) { return InnerList.IndexOf(value); } public WebPart this[int index] { get { return (WebPart) InnerList[index]; } } ////// Returns the WebPart with the specified id, or the GenericWebPart containing a control with /// the specified id, or the ProxyWebPart with OriginalID or GenericWebPartID equal to the /// specified id, performing a case-insensitive comparison. Returns null if there are no matches. /// public WebPart this[string id] { // PERF: Use a hashtable for lookup, instead of a linear search get { foreach (WebPart webPart in InnerList) { if (String.Equals(webPart.ID, id, StringComparison.OrdinalIgnoreCase)) { return webPart; } GenericWebPart genericWebPart = webPart as GenericWebPart; if (genericWebPart != null) { Control control = genericWebPart.ChildControl; if (control != null) { if (String.Equals(control.ID, id, StringComparison.OrdinalIgnoreCase)) { return genericWebPart; } } } ProxyWebPart proxyWebPart = webPart as ProxyWebPart; if (proxyWebPart != null) { if ((String.Equals(proxyWebPart.OriginalID, id, StringComparison.OrdinalIgnoreCase)) || (String.Equals(proxyWebPart.GenericWebPartID, id, StringComparison.OrdinalIgnoreCase))) { return proxyWebPart; } } } return null; } } ////// public void CopyTo(WebPart[] array, int index) { InnerList.CopyTo(array, index); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ //Copies contents from the collection to a specified array with a /// specified starting index. ///// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls.WebParts { using System; using System.Collections; using System.Diagnostics; using System.Globalization; using System.Security.Permissions; ////// Read-only collection of WebParts. Collection cannot be modified after contstruction. /// [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] public sealed class WebPartCollection : ReadOnlyCollectionBase { public WebPartCollection() { } public WebPartCollection(ICollection webParts) { if (webParts == null) { throw new ArgumentNullException("webParts"); } foreach (object obj in webParts) { if (obj == null) { throw new ArgumentException(SR.GetString(SR.Collection_CantAddNull), "webParts"); } if (!(obj is WebPart)) { throw new ArgumentException(SR.GetString(SR.Collection_InvalidType, "WebPart"), "webParts"); } InnerList.Add(obj); } } internal int Add(WebPart value) { Debug.Assert(value != null); return InnerList.Add(value); } public bool Contains(WebPart value) { return InnerList.Contains(value); } public int IndexOf(WebPart value) { return InnerList.IndexOf(value); } public WebPart this[int index] { get { return (WebPart) InnerList[index]; } } ////// Returns the WebPart with the specified id, or the GenericWebPart containing a control with /// the specified id, or the ProxyWebPart with OriginalID or GenericWebPartID equal to the /// specified id, performing a case-insensitive comparison. Returns null if there are no matches. /// public WebPart this[string id] { // PERF: Use a hashtable for lookup, instead of a linear search get { foreach (WebPart webPart in InnerList) { if (String.Equals(webPart.ID, id, StringComparison.OrdinalIgnoreCase)) { return webPart; } GenericWebPart genericWebPart = webPart as GenericWebPart; if (genericWebPart != null) { Control control = genericWebPart.ChildControl; if (control != null) { if (String.Equals(control.ID, id, StringComparison.OrdinalIgnoreCase)) { return genericWebPart; } } } ProxyWebPart proxyWebPart = webPart as ProxyWebPart; if (proxyWebPart != null) { if ((String.Equals(proxyWebPart.OriginalID, id, StringComparison.OrdinalIgnoreCase)) || (String.Equals(proxyWebPart.GenericWebPartID, id, StringComparison.OrdinalIgnoreCase))) { return proxyWebPart; } } } return null; } } ////// public void CopyTo(WebPart[] array, int index) { InnerList.CopyTo(array, index); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.Copies contents from the collection to a specified array with a /// specified starting index. ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DrawingDrawingContext.cs
- TransformCollection.cs
- FixedDocumentSequencePaginator.cs
- BrowserInteropHelper.cs
- NativeWindow.cs
- FontInfo.cs
- UIElementIsland.cs
- CategoryNameCollection.cs
- XomlCompilerResults.cs
- ConfigXmlWhitespace.cs
- TriggerBase.cs
- BitmapEffectInput.cs
- MonikerUtility.cs
- XmlC14NWriter.cs
- SystemIPGlobalProperties.cs
- WebBrowserEvent.cs
- ConfigurationElement.cs
- EmptyStringExpandableObjectConverter.cs
- XmlUtf8RawTextWriter.cs
- KeyConstraint.cs
- NumberFunctions.cs
- Inflater.cs
- TabControlCancelEvent.cs
- DataGridViewSelectedColumnCollection.cs
- OdbcEnvironment.cs
- Expander.cs
- EnvironmentPermission.cs
- AuthenticationServiceManager.cs
- AstNode.cs
- OutputWindow.cs
- SurrogateEncoder.cs
- ClipboardData.cs
- WebServiceEndpoint.cs
- CustomAttributeBuilder.cs
- UnionCodeGroup.cs
- XPathMultyIterator.cs
- MULTI_QI.cs
- WindowsListBox.cs
- Models.cs
- OdbcTransaction.cs
- InternalControlCollection.cs
- OutputWindow.cs
- DataServiceEntityAttribute.cs
- StorageEndPropertyMapping.cs
- InternalConfigHost.cs
- Converter.cs
- XsdDataContractImporter.cs
- XPathException.cs
- SQLDateTimeStorage.cs
- ConnectionModeReader.cs
- AspNetHostingPermission.cs
- TrackingProfileManager.cs
- Selection.cs
- RelatedEnd.cs
- MessageHeaderDescription.cs
- StringAnimationUsingKeyFrames.cs
- Walker.cs
- DnsPermission.cs
- FileSystemWatcher.cs
- XsdDateTime.cs
- Win32MouseDevice.cs
- Sql8ConformanceChecker.cs
- Optimizer.cs
- PropertyDescriptorGridEntry.cs
- FontCacheLogic.cs
- ScriptDescriptor.cs
- WebPartConnectionsCancelVerb.cs
- ProviderSettingsCollection.cs
- SessionSwitchEventArgs.cs
- XmlQuerySequence.cs
- DecoderExceptionFallback.cs
- WindowsClientElement.cs
- FlowDocument.cs
- SettingsPropertyValue.cs
- GraphicsContainer.cs
- DiscreteKeyFrames.cs
- TablePattern.cs
- TransactionContextManager.cs
- UniqueEventHelper.cs
- HotSpotCollection.cs
- BrowserDefinitionCollection.cs
- IndexExpression.cs
- NameValueFileSectionHandler.cs
- updateconfighost.cs
- StylusEventArgs.cs
- XsdBuilder.cs
- DbConnectionPoolIdentity.cs
- ContractMapping.cs
- ResourcesBuildProvider.cs
- RegisteredDisposeScript.cs
- ArrayList.cs
- NavigationHelper.cs
- PerformanceCounterLib.cs
- ObjectList.cs
- XmlIlVisitor.cs
- SafeFileMappingHandle.cs
- PersonalizationDictionary.cs
- ProcessManager.cs
- WebZone.cs
- Rijndael.cs