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;
}
}
///
/// 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.
//------------------------------------------------------------------------------
//
// 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;
}
}
///
/// 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MimeObjectFactory.cs
- TimeoutHelper.cs
- SqlEnums.cs
- ConsoleCancelEventArgs.cs
- Dispatcher.cs
- DomainUpDown.cs
- HeaderCollection.cs
- DataStreams.cs
- WorkflowServiceHostFactory.cs
- NotCondition.cs
- HtmlInputHidden.cs
- RegexGroupCollection.cs
- VirtualizingStackPanel.cs
- RequestCacheManager.cs
- FormsAuthenticationUserCollection.cs
- COM2ColorConverter.cs
- HitTestWithPointDrawingContextWalker.cs
- UITypeEditor.cs
- MyContact.cs
- MaskedTextBoxTextEditor.cs
- SafeLibraryHandle.cs
- NotCondition.cs
- DesignColumn.cs
- DialogResultConverter.cs
- XmlDataSourceView.cs
- WorkItem.cs
- RewritingProcessor.cs
- TextDecorationUnitValidation.cs
- FlowThrottle.cs
- StringUtil.cs
- ConnectorRouter.cs
- ComponentResourceKeyConverter.cs
- BookmarkEventArgs.cs
- PasswordRecovery.cs
- IPipelineRuntime.cs
- NodeFunctions.cs
- TextSelectionHelper.cs
- webeventbuffer.cs
- MethodExpr.cs
- MetadataItem_Static.cs
- Rotation3DAnimationBase.cs
- BitmapEffectDrawingContent.cs
- RegistryExceptionHelper.cs
- DocumentOrderQuery.cs
- GenericEnumerator.cs
- WsatTransactionInfo.cs
- SymbolPair.cs
- RelationshipEndCollection.cs
- FormatVersion.cs
- CasesDictionary.cs
- ConnectionOrientedTransportChannelFactory.cs
- MemoryResponseElement.cs
- SrgsElementFactory.cs
- SelectionEditingBehavior.cs
- StrongNameMembershipCondition.cs
- EntityDataSourceColumn.cs
- ExpressionBindingCollection.cs
- ToolboxItemCollection.cs
- KeyEventArgs.cs
- ValidationSummaryDesigner.cs
- UnitySerializationHolder.cs
- DocumentGridContextMenu.cs
- ProxyHwnd.cs
- NativeMethods.cs
- ContentType.cs
- WebResourceAttribute.cs
- KnowledgeBase.cs
- BrowserInteropHelper.cs
- SystemResources.cs
- BitmapFrameEncode.cs
- LocalBuilder.cs
- XmlDictionaryWriter.cs
- ChannelSinkStacks.cs
- MsmqIntegrationSecurityMode.cs
- PeerApplicationLaunchInfo.cs
- DataGridViewComboBoxColumn.cs
- GridViewPageEventArgs.cs
- EntityWithChangeTrackerStrategy.cs
- Ops.cs
- RelatedImageListAttribute.cs
- JournalNavigationScope.cs
- Monitor.cs
- MetabaseSettingsIis7.cs
- HttpApplication.cs
- ManualResetEvent.cs
- WebServiceErrorEvent.cs
- MarkupCompiler.cs
- QilPatternVisitor.cs
- WebPartTransformerAttribute.cs
- AspNetHostingPermission.cs
- InlineUIContainer.cs
- EventMappingSettings.cs
- AuthenticateEventArgs.cs
- SyncOperationState.cs
- configsystem.cs
- MouseCaptureWithinProperty.cs
- PeerNeighborManager.cs
- DeleteIndexBinder.cs
- FolderNameEditor.cs
- XmlSchema.cs