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
- LinqDataSourceStatusEventArgs.cs
- DataConnectionHelper.cs
- MenuTracker.cs
- MergablePropertyAttribute.cs
- UTF32Encoding.cs
- DefaultValueConverter.cs
- DataGridRowAutomationPeer.cs
- SurrogateEncoder.cs
- EntityObject.cs
- SocketManager.cs
- BindingCompleteEventArgs.cs
- HtmlLabelAdapter.cs
- ExplicitDiscriminatorMap.cs
- BuilderPropertyEntry.cs
- LoadItemsEventArgs.cs
- ShaderRenderModeValidation.cs
- TraceUtils.cs
- FormClosingEvent.cs
- MarkupProperty.cs
- ControlAdapter.cs
- OracleConnection.cs
- EventWaitHandle.cs
- BaseAppDomainProtocolHandler.cs
- DataControlFieldCell.cs
- OdbcRowUpdatingEvent.cs
- _TLSstream.cs
- HashStream.cs
- Inflater.cs
- InitializationEventAttribute.cs
- ModelItemKeyValuePair.cs
- EventLogWatcher.cs
- SqlClientWrapperSmiStreamChars.cs
- ElementHostAutomationPeer.cs
- EraserBehavior.cs
- JavascriptCallbackBehaviorAttribute.cs
- DbMetaDataFactory.cs
- SQLDecimal.cs
- COM2Properties.cs
- elementinformation.cs
- CalendarDay.cs
- RightsManagementInformation.cs
- PathSegment.cs
- TransformCollection.cs
- FileLevelControlBuilderAttribute.cs
- _SpnDictionary.cs
- XhtmlTextWriter.cs
- LinqDataSourceDisposeEventArgs.cs
- SspiNegotiationTokenAuthenticator.cs
- XsltSettings.cs
- ResXResourceSet.cs
- CharKeyFrameCollection.cs
- GenericEnumConverter.cs
- ProcessModuleDesigner.cs
- CompilerResults.cs
- DebugControllerThread.cs
- ExpressionBuilderContext.cs
- KeyValueConfigurationElement.cs
- ValidatorUtils.cs
- MimeXmlReflector.cs
- OdbcHandle.cs
- HttpCacheVaryByContentEncodings.cs
- Math.cs
- CookieParameter.cs
- NotFiniteNumberException.cs
- Bits.cs
- SchemaHelper.cs
- VisualStyleTypesAndProperties.cs
- XmlQualifiedName.cs
- Tokenizer.cs
- ServiceConfigurationTraceRecord.cs
- ReflectionTypeLoadException.cs
- Emitter.cs
- FolderBrowserDialogDesigner.cs
- XmlHelper.cs
- SerializationAttributes.cs
- SmtpClient.cs
- HwndMouseInputProvider.cs
- SqlClientMetaDataCollectionNames.cs
- TextServicesPropertyRanges.cs
- VisualBasicReference.cs
- ViewCellRelation.cs
- ImmComposition.cs
- ListViewItem.cs
- ToolStripProgressBar.cs
- SchemaLookupTable.cs
- ListItemParagraph.cs
- AutomationEvent.cs
- Help.cs
- AstTree.cs
- BamlBinaryReader.cs
- ExternalCalls.cs
- ellipse.cs
- GroupBoxAutomationPeer.cs
- ButtonChrome.cs
- Vector3DKeyFrameCollection.cs
- TreePrinter.cs
- MimeObjectFactory.cs
- ModuleBuilderData.cs
- HtmlFormWrapper.cs
- LoginNameDesigner.cs