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
- sqlstateclientmanager.cs
- SqlFormatter.cs
- ActivityTypeDesigner.xaml.cs
- PersonalizableAttribute.cs
- WebPartManager.cs
- XsdCachingReader.cs
- WebServiceErrorEvent.cs
- RegexGroupCollection.cs
- EntityViewContainer.cs
- MouseOverProperty.cs
- ConfigurationCollectionAttribute.cs
- ObjectPropertyMapping.cs
- DynamicFilterExpression.cs
- Pointer.cs
- RowSpanVector.cs
- XmlCharType.cs
- FontWeight.cs
- ProviderUtil.cs
- ConfigurationManagerInternalFactory.cs
- JavaScriptObjectDeserializer.cs
- Vertex.cs
- AsyncSerializedWorker.cs
- AnimationLayer.cs
- CustomCredentialPolicy.cs
- ParserContext.cs
- wgx_exports.cs
- AmbientLight.cs
- shaperfactory.cs
- externdll.cs
- ICspAsymmetricAlgorithm.cs
- SemanticBasicElement.cs
- CodeAttributeArgument.cs
- MatrixTransform.cs
- ConsumerConnectionPoint.cs
- QuaternionAnimation.cs
- Visual3D.cs
- Root.cs
- AppSettings.cs
- StructuredTypeEmitter.cs
- ScriptResourceHandler.cs
- HandlerFactoryWrapper.cs
- LineUtil.cs
- SqlDependency.cs
- AttributeUsageAttribute.cs
- DisplayMemberTemplateSelector.cs
- Translator.cs
- TraceContextRecord.cs
- RotateTransform3D.cs
- TableLayoutSettings.cs
- dtdvalidator.cs
- ScriptComponentDescriptor.cs
- SqlCacheDependencyDatabaseCollection.cs
- BaseCollection.cs
- Grid.cs
- altserialization.cs
- RepeaterCommandEventArgs.cs
- BitmapImage.cs
- SapiInterop.cs
- RepeatBehavior.cs
- XmlSchemaAttributeGroupRef.cs
- IntSecurity.cs
- SharedUtils.cs
- AlphabeticalEnumConverter.cs
- WebConfigurationManager.cs
- HtmlTableRowCollection.cs
- CredentialSelector.cs
- CallbackException.cs
- XPathExpr.cs
- GenericPrincipal.cs
- DeleteCardRequest.cs
- AsymmetricAlgorithm.cs
- IItemContainerGenerator.cs
- KeyManager.cs
- EnumCodeDomSerializer.cs
- DrawingContextFlattener.cs
- FocusManager.cs
- SecurityKeyIdentifierClause.cs
- WebCodeGenerator.cs
- COM2ColorConverter.cs
- DataViewSettingCollection.cs
- DriveNotFoundException.cs
- WsdlHelpGeneratorElement.cs
- DocumentSequence.cs
- XmlSchemaAppInfo.cs
- GridSplitter.cs
- SQLInt64Storage.cs
- Atom10FormatterFactory.cs
- _KerberosClient.cs
- ColumnMap.cs
- AesCryptoServiceProvider.cs
- EncryptedKeyIdentifierClause.cs
- Number.cs
- SpeechUI.cs
- MarkupExtensionParser.cs
- XmlAnyElementAttribute.cs
- AlphabeticalEnumConverter.cs
- Char.cs
- DesignTimeVisibleAttribute.cs
- HiddenFieldPageStatePersister.cs
- Parsers.cs