Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / xsp / System / Web / UI / WebParts / ProxyWebPart.cs / 1 / ProxyWebPart.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls.WebParts { using System; using System.Collections; using System.ComponentModel; using System.Globalization; using System.Security.Permissions; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.Util; [ ToolboxItem(false) ] [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public abstract class ProxyWebPart : WebPart { private string _originalID; private string _originalTypeName; private string _originalPath; private string _genericWebPartID; protected ProxyWebPart(WebPart webPart) { if (webPart == null) { throw new ArgumentNullException("webPart"); } GenericWebPart genericWebPart = webPart as GenericWebPart; if (genericWebPart != null) { Control childControl = genericWebPart.ChildControl; if (childControl == null) { throw new ArgumentException(SR.GetString( SR.PropertyCannotBeNull, "ChildControl"), "webPart"); } _originalID = childControl.ID; if (String.IsNullOrEmpty(_originalID)) { throw new ArgumentException(SR.GetString( SR.PropertyCannotBeNullOrEmptyString, "ChildControl.ID"), "webPart"); } Type originalType; UserControl childUserControl = childControl as UserControl; if (childUserControl != null) { originalType = typeof(UserControl); _originalPath = childUserControl.AppRelativeVirtualPath; } else { originalType = childControl.GetType(); } _originalTypeName = WebPartUtil.SerializeType(originalType); _genericWebPartID = genericWebPart.ID; if (String.IsNullOrEmpty(_genericWebPartID)) { throw new ArgumentException(SR.GetString( SR.PropertyCannotBeNullOrEmptyString, "ID"), "webPart"); } ID = _genericWebPartID; } else { _originalID = webPart.ID; if (String.IsNullOrEmpty(_originalID)) { throw new ArgumentException(SR.GetString( SR.PropertyCannotBeNullOrEmptyString, "ID"), "webPart"); } _originalTypeName = WebPartUtil.SerializeType(webPart.GetType()); ID = _originalID; } } protected ProxyWebPart(string originalID, string originalTypeName, string originalPath, string genericWebPartID) { if (String.IsNullOrEmpty(originalID)) { throw ExceptionUtil.ParameterNullOrEmpty("originalID"); } if (String.IsNullOrEmpty(originalTypeName)) { throw ExceptionUtil.ParameterNullOrEmpty("originalTypeName"); } // If you specify a path, this must be a GenericWebPart so genericWebPartID should not be null if (!String.IsNullOrEmpty(originalPath) && String.IsNullOrEmpty(genericWebPartID)) { throw ExceptionUtil.ParameterNullOrEmpty("genericWebPartID"); } _originalID = originalID; _originalTypeName = originalTypeName; _originalPath = originalPath; _genericWebPartID = genericWebPartID; if (!String.IsNullOrEmpty(genericWebPartID)) { ID = _genericWebPartID; } else { ID = _originalID; } } public string GenericWebPartID { get { return (_genericWebPartID != null) ? _genericWebPartID : String.Empty; } } // Seal the ID property so we can set it in the constructor without an FxCop violation. public sealed override string ID { get { return base.ID; } set { base.ID = value; } } public string OriginalID { get { return (_originalID != null) ? _originalID : String.Empty; } } public string OriginalTypeName { get { return (_originalTypeName != null) ? _originalTypeName : String.Empty; } } public string OriginalPath { get { return (_originalPath != null) ? _originalPath : String.Empty; } } // Accept any ControlState, but do nothing with it, since it is actually the ControlState // for the WebPart we are replacing. protected internal override void LoadControlState(object savedState) { } // Accept any ViewState, but do nothing with it, since it is actually the ViewState // for the WebPart we are replacing. protected override void LoadViewState(object savedState) { } // Do not save any ControlState, since the ProxyWebPart itself does not need to save state // between requests. protected internal override object SaveControlState() { // Call base in case it has some side-effects that the control relies on base.SaveControlState(); return null; } // Do not save any ViewState, since the ProxyWebPart itself does not need to save state // between requests. protected override object SaveViewState() { // Call base in case it has some side-effects that the control relies on base.SaveViewState(); return null; } } }
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DragDrop.cs
- CommonProperties.cs
- VerticalAlignConverter.cs
- GC.cs
- TdsEnums.cs
- TypeGeneratedEventArgs.cs
- BamlRecords.cs
- MiniLockedBorderGlyph.cs
- HttpPostProtocolImporter.cs
- AuthenticationService.cs
- _WinHttpWebProxyDataBuilder.cs
- HtmlTextBoxAdapter.cs
- InvalidComObjectException.cs
- CompiledELinqQueryState.cs
- SafeNativeMethodsCLR.cs
- Encoding.cs
- X509Certificate2Collection.cs
- ComplexBindingPropertiesAttribute.cs
- TabControlEvent.cs
- FixedHyperLink.cs
- CopyOnWriteList.cs
- HostedImpersonationContext.cs
- KnowledgeBase.cs
- UInt16.cs
- ToolStripItemImageRenderEventArgs.cs
- hresults.cs
- AlternateView.cs
- SHA384Managed.cs
- DatatypeImplementation.cs
- ZipIOLocalFileDataDescriptor.cs
- SocketAddress.cs
- Msec.cs
- ISFTagAndGuidCache.cs
- CheckBoxFlatAdapter.cs
- XmlSchemaSubstitutionGroup.cs
- DoWorkEventArgs.cs
- ListViewHitTestInfo.cs
- TrackingStringDictionary.cs
- TreeIterator.cs
- _NegoStream.cs
- Style.cs
- HtmlTableRow.cs
- AppSettingsExpressionEditor.cs
- TemplateControlCodeDomTreeGenerator.cs
- DbCommandTree.cs
- StateRuntime.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- EventSinkHelperWriter.cs
- XmlSchemas.cs
- ConversionHelper.cs
- BitmapData.cs
- HttpCacheVaryByContentEncodings.cs
- WebDescriptionAttribute.cs
- WorkflowApplicationEventArgs.cs
- DbConnectionPoolOptions.cs
- XmlQueryRuntime.cs
- ExpressionVisitorHelpers.cs
- SqlDataSourceEnumerator.cs
- DoubleCollectionConverter.cs
- OracleBinary.cs
- TextPointerBase.cs
- ScrollEvent.cs
- SqlTypeSystemProvider.cs
- DbDataAdapter.cs
- SharedConnectionWorkflowTransactionService.cs
- AvTraceFormat.cs
- MD5.cs
- AttachedPropertyMethodSelector.cs
- DoubleAnimation.cs
- XmlMapping.cs
- SpanIndex.cs
- DynamicResourceExtension.cs
- ProfilePropertySettingsCollection.cs
- SHA256.cs
- Mappings.cs
- ConvertEvent.cs
- Utils.cs
- SortDescriptionCollection.cs
- ManualResetEvent.cs
- MessageAction.cs
- EmptyImpersonationContext.cs
- RouteParser.cs
- SplitterPanel.cs
- StylusDownEventArgs.cs
- PropertyItem.cs
- safePerfProviderHandle.cs
- InlineCategoriesDocument.cs
- DBConcurrencyException.cs
- QilName.cs
- GroupItem.cs
- StackOverflowException.cs
- HttpRawResponse.cs
- UmAlQuraCalendar.cs
- ToolStripManager.cs
- KerberosSecurityTokenProvider.cs
- ImageKeyConverter.cs
- LayoutInformation.cs
- JsonDeserializer.cs
- TypeDelegator.cs
- XmlExtensionFunction.cs