Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / Extensions / UI / ScriptControl.cs / 1305376 / ScriptControl.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI { using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Web; using System.Web.Resources; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.Util; public abstract class ScriptControl : WebControl, IScriptControl { private IScriptManagerInternal _scriptManager; private new IPage _page; protected ScriptControl() { } internal ScriptControl(IScriptManagerInternal scriptManager, IPage page) { _scriptManager = scriptManager; _page = page; } private IPage IPage { get { if (_page != null) { return _page; } else { Page page = Page; if (page == null) { throw new InvalidOperationException(AtlasWeb.Common_PageCannotBeNull); } return new PageWrapper(page); } } } private IScriptManagerInternal ScriptManager { get { if (_scriptManager == null) { Page page = Page; if (page == null) { throw new InvalidOperationException(AtlasWeb.Common_PageCannotBeNull); } _scriptManager = System.Web.UI.ScriptManager.GetCurrent(page); if (_scriptManager == null) { throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, AtlasWeb.Common_ScriptManagerRequired, ID)); } } return _scriptManager; } } [SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers")] protected internal override void OnPreRender(EventArgs e) { base.OnPreRender(e); ScriptManager.RegisterScriptControl(this); } protected internal override void Render(HtmlTextWriter writer) { base.Render(writer); // DevDiv 97460: ScriptDescriptors only render if in server form, verify to avoid silently failing. IPage.VerifyRenderingInServerForm(this); // ScriptManager cannot be found in DesignMode, so do not attempt to register scripts. if (!DesignMode) { ScriptManager.RegisterScriptDescriptors(this); } } [SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Justification = "Implementation will likely return a new collection, which is too slow for a property")] protected abstract IEnumerableGetScriptDescriptors(); [SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Justification = "Implementation will likely return a new collection, which is too slow for a property")] protected abstract IEnumerable GetScriptReferences(); #region IScriptControl Members IEnumerable IScriptControl.GetScriptDescriptors() { return GetScriptDescriptors(); } IEnumerable IScriptControl.GetScriptReferences() { return GetScriptReferences(); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ // // Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI { using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics.CodeAnalysis; using System.Globalization; using System.Web; using System.Web.Resources; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.Util; public abstract class ScriptControl : WebControl, IScriptControl { private IScriptManagerInternal _scriptManager; private new IPage _page; protected ScriptControl() { } internal ScriptControl(IScriptManagerInternal scriptManager, IPage page) { _scriptManager = scriptManager; _page = page; } private IPage IPage { get { if (_page != null) { return _page; } else { Page page = Page; if (page == null) { throw new InvalidOperationException(AtlasWeb.Common_PageCannotBeNull); } return new PageWrapper(page); } } } private IScriptManagerInternal ScriptManager { get { if (_scriptManager == null) { Page page = Page; if (page == null) { throw new InvalidOperationException(AtlasWeb.Common_PageCannotBeNull); } _scriptManager = System.Web.UI.ScriptManager.GetCurrent(page); if (_scriptManager == null) { throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, AtlasWeb.Common_ScriptManagerRequired, ID)); } } return _scriptManager; } } [SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers")] protected internal override void OnPreRender(EventArgs e) { base.OnPreRender(e); ScriptManager.RegisterScriptControl(this); } protected internal override void Render(HtmlTextWriter writer) { base.Render(writer); // DevDiv 97460: ScriptDescriptors only render if in server form, verify to avoid silently failing. IPage.VerifyRenderingInServerForm(this); // ScriptManager cannot be found in DesignMode, so do not attempt to register scripts. if (!DesignMode) { ScriptManager.RegisterScriptDescriptors(this); } } [SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Justification = "Implementation will likely return a new collection, which is too slow for a property")] protected abstract IEnumerableGetScriptDescriptors(); [SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Justification = "Implementation will likely return a new collection, which is too slow for a property")] protected abstract IEnumerable GetScriptReferences(); #region IScriptControl Members IEnumerable IScriptControl.GetScriptDescriptors() { return GetScriptDescriptors(); } IEnumerable IScriptControl.GetScriptReferences() { return GetScriptReferences(); } #endregion } } // 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
- _ProxyRegBlob.cs
- RecordConverter.cs
- ChangeBlockUndoRecord.cs
- AsyncResult.cs
- DataServiceRequestException.cs
- PropertyEmitter.cs
- Form.cs
- SQLBytes.cs
- InternalSafeNativeMethods.cs
- PriorityQueue.cs
- CustomAttributeSerializer.cs
- WebBrowserDocumentCompletedEventHandler.cs
- CodeLabeledStatement.cs
- WebPartTransformerCollection.cs
- LocatorPartList.cs
- XsdBuildProvider.cs
- IItemContainerGenerator.cs
- AccessibleObject.cs
- TextSpanModifier.cs
- Splitter.cs
- AssemblyNameProxy.cs
- ConnectionPoolRegistry.cs
- ReadWriteSpinLock.cs
- FolderLevelBuildProviderAppliesToAttribute.cs
- SQLGuid.cs
- DockPattern.cs
- DocumentsTrace.cs
- HttpListenerResponse.cs
- DrawingAttributeSerializer.cs
- NamespaceInfo.cs
- sqlcontext.cs
- XmlSigningNodeWriter.cs
- COM2IProvidePropertyBuilderHandler.cs
- SapiRecoInterop.cs
- TypeLibConverter.cs
- UriTemplateVariableQueryValue.cs
- UIElementCollection.cs
- ResourceSet.cs
- PrivilegedConfigurationManager.cs
- ChannelSinkStacks.cs
- XmlChildNodes.cs
- AsymmetricKeyExchangeDeformatter.cs
- HuffCodec.cs
- CodePrimitiveExpression.cs
- ExtensionWindowResizeGrip.cs
- Atom10ItemFormatter.cs
- ElementHostAutomationPeer.cs
- SQLString.cs
- DBNull.cs
- CodeEventReferenceExpression.cs
- PathGeometry.cs
- EditingCoordinator.cs
- DesignTimeTemplateParser.cs
- SamlConstants.cs
- SqlConnectionManager.cs
- ConnectionStringSettings.cs
- GeneratedView.cs
- SourceFilter.cs
- PathBox.cs
- DataColumnPropertyDescriptor.cs
- ConstantProjectedSlot.cs
- BooleanExpr.cs
- SelectedDatesCollection.cs
- ToolStripItemTextRenderEventArgs.cs
- AmbiguousMatchException.cs
- Attributes.cs
- ScrollChrome.cs
- PerfCounters.cs
- StorageScalarPropertyMapping.cs
- EditingCoordinator.cs
- ThreadExceptionEvent.cs
- SetterBase.cs
- FontEmbeddingManager.cs
- ProfileParameter.cs
- ComboBox.cs
- ProfileParameter.cs
- Vector3DCollectionConverter.cs
- ThicknessAnimation.cs
- ListGeneralPage.cs
- SqlGenericUtil.cs
- DataGridRowHeader.cs
- EntityTypeBase.cs
- SspiNegotiationTokenProviderState.cs
- UnSafeCharBuffer.cs
- ListViewInsertedEventArgs.cs
- PackWebResponse.cs
- Odbc32.cs
- ReverseComparer.cs
- CacheSection.cs
- DelayedRegex.cs
- ListBox.cs
- ResXFileRef.cs
- SqlNotificationEventArgs.cs
- EncryptRequest.cs
- ProgressBarAutomationPeer.cs
- TableHeaderCell.cs
- XmlSchemaNotation.cs
- WorkflowDesignerMessageFilter.cs
- NeedSkipTokenVisitor.cs
- ObservableCollection.cs