Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Web / UI / WebParts / WebPartCollection.cs / 1305376 / 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;
///
/// Read-only collection of WebParts. Collection cannot be modified after contstruction.
///
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;
}
}
///
/// Copies contents from the collection to a specified array with a
/// specified starting index.
///
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.
//
//-----------------------------------------------------------------------------
namespace System.Web.UI.WebControls.WebParts {
using System;
using System.Collections;
using System.Diagnostics;
using System.Globalization;
///
/// Read-only collection of WebParts. Collection cannot be modified after contstruction.
///
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;
}
}
///
/// Copies contents from the collection to a specified array with a
/// specified starting index.
///
public void CopyTo(WebPart[] array, int index) {
InnerList.CopyTo(array, index);
}
}
}
// 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
- ToolStripGripRenderEventArgs.cs
- XmlC14NWriter.cs
- UndoManager.cs
- WSMessageEncoding.cs
- MetafileHeaderWmf.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- AssociationEndMember.cs
- KeyValuePairs.cs
- UICuesEvent.cs
- BinaryWriter.cs
- InstallerTypeAttribute.cs
- SimplePropertyEntry.cs
- ErrorEventArgs.cs
- GuidTagList.cs
- XsltSettings.cs
- ExtensionFile.cs
- TrackingServices.cs
- OleDbParameterCollection.cs
- Margins.cs
- NumericUpDownAccelerationCollection.cs
- Events.cs
- MatrixTransform.cs
- WizardPanel.cs
- UnsafeNativeMethodsTablet.cs
- WorkflowServiceBuildProvider.cs
- AutomationPropertyInfo.cs
- SimpleApplicationHost.cs
- FixedPageAutomationPeer.cs
- GB18030Encoding.cs
- CLSCompliantAttribute.cs
- UseLicense.cs
- Rethrow.cs
- SqlDataAdapter.cs
- Point3DValueSerializer.cs
- FrameworkElementFactory.cs
- DataGridViewRowStateChangedEventArgs.cs
- ValidatorAttribute.cs
- PreviousTrackingServiceAttribute.cs
- PaintValueEventArgs.cs
- StatusBar.cs
- FilteredReadOnlyMetadataCollection.cs
- CodeIdentifiers.cs
- ThreadExceptionEvent.cs
- PerformanceCounterCategory.cs
- MetaTable.cs
- ControlPager.cs
- PersonalizationProviderCollection.cs
- QilParameter.cs
- ZipIORawDataFileBlock.cs
- ChainOfDependencies.cs
- SmuggledIUnknown.cs
- SrgsRuleRef.cs
- SqlClientPermission.cs
- Ops.cs
- WCFBuildProvider.cs
- ParallelRangeManager.cs
- DataGridTable.cs
- Listbox.cs
- PageCodeDomTreeGenerator.cs
- FixedPage.cs
- Closure.cs
- ValueExpressions.cs
- KeyInterop.cs
- ReadOnlyKeyedCollection.cs
- WebHeaderCollection.cs
- __Error.cs
- Msec.cs
- ServiceContractViewControl.Designer.cs
- NetSectionGroup.cs
- BufferedConnection.cs
- SettingsBase.cs
- FillErrorEventArgs.cs
- MethodCallConverter.cs
- RelatedImageListAttribute.cs
- ClientSettingsSection.cs
- TextFormatter.cs
- DBConnectionString.cs
- Property.cs
- ResourceWriter.cs
- EditBehavior.cs
- thaishape.cs
- PartitionedDataSource.cs
- AssertFilter.cs
- SizeConverter.cs
- IndependentAnimationStorage.cs
- WebRequestModuleElement.cs
- DataGridViewTextBoxCell.cs
- SecureStringHasher.cs
- IPHostEntry.cs
- ResourceProviderFactory.cs
- CollectionViewGroupRoot.cs
- PeerEndPoint.cs
- XmlDictionary.cs
- PartialTrustVisibleAssembliesSection.cs
- ButtonRenderer.cs
- ProxyElement.cs
- Control.cs
- RenderTargetBitmap.cs
- RecognizerStateChangedEventArgs.cs
- TextWriter.cs