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
- DictionaryChange.cs
- WebRequestModuleElement.cs
- XmlStreamNodeWriter.cs
- RuntimeResourceSet.cs
- ProfileProvider.cs
- transactioncontext.cs
- ExpressionBuilderContext.cs
- MediaElement.cs
- RolePrincipal.cs
- RSACryptoServiceProvider.cs
- PassportAuthenticationEventArgs.cs
- DataControlCommands.cs
- RegisteredExpandoAttribute.cs
- ProgressiveCrcCalculatingStream.cs
- PermissionListSet.cs
- RectangleGeometry.cs
- FormViewRow.cs
- PageParser.cs
- WebBrowserBase.cs
- SqlUserDefinedTypeAttribute.cs
- DirectoryObjectSecurity.cs
- DesignParameter.cs
- WmlFormAdapter.cs
- TreeNodeEventArgs.cs
- XmlNamespaceManager.cs
- SafeProcessHandle.cs
- BinaryObjectReader.cs
- DesignTimeParseData.cs
- SystemFonts.cs
- VirtualizedItemProviderWrapper.cs
- Form.cs
- PerformanceCounter.cs
- TreeViewImageIndexConverter.cs
- Window.cs
- KeyedCollection.cs
- GCHandleCookieTable.cs
- HttpRequestTraceRecord.cs
- MenuAdapter.cs
- Int32AnimationUsingKeyFrames.cs
- MissingMethodException.cs
- ManagementBaseObject.cs
- RelationshipEndMember.cs
- BaseCollection.cs
- WebPartHelpVerb.cs
- RegexParser.cs
- DynamicUpdateCommand.cs
- OutputCacheSettingsSection.cs
- GestureRecognizer.cs
- Panel.cs
- UnaryQueryOperator.cs
- DataPager.cs
- ViewCellSlot.cs
- PhysicalFontFamily.cs
- AssemblyCacheEntry.cs
- ApplicationTrust.cs
- TargetConverter.cs
- FilterQuery.cs
- KeyTimeConverter.cs
- SelectionWordBreaker.cs
- MatrixConverter.cs
- AnnotationMap.cs
- DataControlField.cs
- MediaContextNotificationWindow.cs
- LocatorGroup.cs
- TargetParameterCountException.cs
- RoleManagerModule.cs
- FunctionUpdateCommand.cs
- _HelperAsyncResults.cs
- OracleConnectionFactory.cs
- FlowchartDesigner.xaml.cs
- XmlCharCheckingWriter.cs
- FullTextLine.cs
- Window.cs
- DateTimeOffsetConverter.cs
- RightNameExpirationInfoPair.cs
- FormatPage.cs
- ProcessProtocolHandler.cs
- UInt64Storage.cs
- ProviderCollection.cs
- CollectionDataContract.cs
- Point4DConverter.cs
- DocobjHost.cs
- StickyNoteContentControl.cs
- SchemaDeclBase.cs
- WindowsPen.cs
- Separator.cs
- BooleanSwitch.cs
- IfJoinedCondition.cs
- SectionUpdates.cs
- WebBrowserBase.cs
- ParallelTimeline.cs
- ActivationArguments.cs
- TreeIterator.cs
- FixedTextBuilder.cs
- coordinatorscratchpad.cs
- QilCloneVisitor.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- CompModSwitches.cs
- MatrixKeyFrameCollection.cs
- RoleServiceManager.cs