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
- SizeConverter.cs
- CompressionTransform.cs
- VerificationAttribute.cs
- ColumnResult.cs
- UnmanagedBitmapWrapper.cs
- TemporaryBitmapFile.cs
- EpmCustomContentDeSerializer.cs
- ReturnValue.cs
- DetailsViewRowCollection.cs
- GeometryConverter.cs
- MobileControlsSection.cs
- FacetValueContainer.cs
- StrokeCollectionConverter.cs
- WorkflowQueuingService.cs
- ToolStripSplitStackLayout.cs
- SqlReorderer.cs
- ErrorLog.cs
- VectorCollection.cs
- XPathMultyIterator.cs
- UnsafeNativeMethods.cs
- FilterException.cs
- CollectionViewGroup.cs
- TypefaceMap.cs
- SqlUserDefinedTypeAttribute.cs
- Rule.cs
- EventRoute.cs
- IPEndPoint.cs
- XmlDocumentFragment.cs
- WindowsListViewItemStartMenu.cs
- VBIdentifierNameEditor.cs
- XmlName.cs
- CodeTypeReferenceCollection.cs
- ScrollViewerAutomationPeer.cs
- SpecularMaterial.cs
- BooleanKeyFrameCollection.cs
- WindowsProgressbar.cs
- ExtendedProperty.cs
- MultipartIdentifier.cs
- ObjectContextServiceProvider.cs
- TextTreeInsertElementUndoUnit.cs
- DataGridViewComponentPropertyGridSite.cs
- FontCacheUtil.cs
- XmlSchemaComplexType.cs
- Grammar.cs
- BasicBrowserDialog.cs
- KeyFrames.cs
- SelectionProcessor.cs
- SQLResource.cs
- HttpDigestClientCredential.cs
- DragEvent.cs
- HttpHandlerAction.cs
- XsltContext.cs
- ObjectManager.cs
- ComplexTypeEmitter.cs
- PersonalizablePropertyEntry.cs
- Visitor.cs
- ResourceReader.cs
- GetParentChain.cs
- WebBrowserSiteBase.cs
- SimpleWorkerRequest.cs
- XmlILConstructAnalyzer.cs
- _UriTypeConverter.cs
- COM2ExtendedBrowsingHandler.cs
- OdbcParameter.cs
- InputGestureCollection.cs
- InterleavedZipPartStream.cs
- CreatingCookieEventArgs.cs
- brushes.cs
- ObjectContext.cs
- Line.cs
- ControlCollection.cs
- MediaEntryAttribute.cs
- Int16Converter.cs
- PageVisual.cs
- DataControlFieldHeaderCell.cs
- CapabilitiesAssignment.cs
- DictionaryEntry.cs
- HttpTransportSecurity.cs
- Rotation3D.cs
- EpmAttributeNameBuilder.cs
- XPathNodeInfoAtom.cs
- LicenseContext.cs
- designeractionlistschangedeventargs.cs
- GeneralTransformGroup.cs
- NonSerializedAttribute.cs
- ColorMap.cs
- SafeArchiveContext.cs
- RunClient.cs
- ValidationEventArgs.cs
- CountAggregationOperator.cs
- CryptoConfig.cs
- XmlSerializationGeneratedCode.cs
- GridLength.cs
- MaterialGroup.cs
- DrawingContextDrawingContextWalker.cs
- DataGridViewColumnConverter.cs
- ConstraintConverter.cs
- TextCharacters.cs
- NavigationPropertyEmitter.cs
- ConfigurationSectionCollection.cs