Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / xsp / System / Web / Extensions / ui / Timer.cs / 1 / Timer.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.Drawing; using System.Globalization; using System.Reflection; using System.Security.Permissions; using System.Web; using System.Web.Util; using System.Web.Resources; [ AspNetHostingPermission(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal), AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal), DefaultEvent("Tick"), DefaultProperty("Interval"), Designer("System.Web.UI.Design.TimerDesigner, " + AssemblyRef.SystemWebExtensionsDesign), NonVisualControl, ToolboxBitmap(typeof(EmbeddedResourceFinder), "System.Web.Resources.Timer.bmp"), SupportsEventValidation, ToolboxItemFilterAttribute(AssemblyRef.SystemWebExtensions, ToolboxItemFilterType.Require), ] public class Timer : Control, IPostBackEventHandler, IScriptControl { private static readonly object TickEventKey = new object(); private bool _stateDirty; private new IPage _page; private ScriptManager _scriptManager; public Timer() {} private IPage IPage { get { if (null == _page) { Page page = Page; if (null == page) { throw new InvalidOperationException(AtlasWeb.Common_PageCannotBeNull); } _page = new PageWrapper(page); } return _page; } } [ ResourceDescription("Timer_TimerEnable"), Category("Behavior"), DefaultValue(true) ] public bool Enabled { get { object o = ViewState["Enabled"]; return (o != null) ? (bool)o : true; } set { if (!_stateDirty && IsTrackingViewState) { object o = ViewState["Enabled"]; _stateDirty = (null == o) ? true : (value != (bool)o); } ViewState["Enabled"] = value; } } [ ResourceDescription("Timer_TimerInterval"), Category("Behavior"), DefaultValue(60000) ] public int Interval { get { object o = ViewState["Interval"]; return (o != null) ? (int)o : 60000; } set { if (value <= 0) { throw new ArgumentOutOfRangeException("value", AtlasWeb.Timer_IntervalMustBeGreaterThanZero); } if (!_stateDirty && IsTrackingViewState) { object o = ViewState["Interval"]; _stateDirty = (null == o) ? true : (value != (int)o); } ViewState["Interval"] = value; } } internal ScriptManager ScriptManager { get { if (_scriptManager == null) { Page page = Page; if (page == null) { throw new InvalidOperationException(AtlasWeb.Common_PageCannotBeNull); } _scriptManager = ScriptManager.GetCurrent(page); if (_scriptManager == null) { throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, AtlasWeb.Common_ScriptManagerRequired, ID)); } } return _scriptManager; } } [ Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), EditorBrowsable(EditorBrowsableState.Never) ] public override bool Visible { get { return base.Visible; } set { throw new NotImplementedException(); } } [ ResourceDescription("Timer_TimerTick"), Category("Action") ] public event EventHandlerTick { add { Events.AddHandler(TickEventKey, value); } remove { Events.RemoveHandler(TickEventKey, value); } } private string GetJsonState() { return "[" + ((Enabled) ? "true" : "false") + "," + Interval.ToString(CultureInfo.InvariantCulture) + "]"; } [SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Justification = "Matches IScriptControl interface.")] protected virtual IEnumerable GetScriptDescriptors() { ScriptComponentDescriptor s = new ScriptControlDescriptor("Sys.UI._Timer", this.ClientID); s.AddProperty("interval", Interval); s.AddProperty("enabled", Enabled); s.AddProperty("uniqueID",this.UniqueID); yield return s; } [SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Justification = "Matches IScriptControl interface.")] protected virtual IEnumerable GetScriptReferences() { yield return new ScriptReference("MicrosoftAjaxTimer.js", Assembly.GetAssembly(typeof(Timer)).FullName) ; } #region IPostBackEventHandler Members void IPostBackEventHandler.RaisePostBackEvent(string eventArgument) { RaisePostBackEvent(eventArgument); } #endregion #region IScriptControl Members IEnumerable IScriptControl.GetScriptDescriptors() { return GetScriptDescriptors(); } IEnumerable IScriptControl.GetScriptReferences() { return GetScriptReferences(); } #endregion [SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers")] protected internal override void OnPreRender(EventArgs e) { base.OnPreRender(e); this.ScriptManager.RegisterScriptControl(this); if (_stateDirty && this.ScriptManager.IsInAsyncPostBack) { _stateDirty = false; this.ScriptManager.RegisterDataItem(this, GetJsonState(), true); } // Get a postback event reference to ensure that the postback script is generated // and to make sure this is an expected name/value pair from an event validation // perspective. IPage.ClientScript.GetPostBackEventReference(new PostBackOptions(this, String.Empty)); } [SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers")] protected virtual void OnTick(EventArgs e) { EventHandler handler = (EventHandler )Events[TickEventKey]; if (handler != null) { handler(this, e); } } [SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Justification = "Matches IPostBackEventHandler interface.")] protected virtual void RaisePostBackEvent(string eventArgument) { if (Enabled) { OnTick(EventArgs.Empty); } } protected internal override void Render(HtmlTextWriter writer) { // Make sure we are in a form tag with runat=server. IPage.VerifyRenderingInServerForm(this); writer.AddAttribute(HtmlTextWriterAttribute.Id, ClientID); writer.AddStyleAttribute(HtmlTextWriterStyle.Visibility, "hidden"); writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "none"); writer.RenderBeginTag(HtmlTextWriterTag.Span); writer.RenderEndTag(); // Span if (!DesignMode) { ScriptManager.RegisterScriptDescriptors(this); } } } } // 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.Drawing; using System.Globalization; using System.Reflection; using System.Security.Permissions; using System.Web; using System.Web.Util; using System.Web.Resources; [ AspNetHostingPermission(SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal), AspNetHostingPermission(SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal), DefaultEvent("Tick"), DefaultProperty("Interval"), Designer("System.Web.UI.Design.TimerDesigner, " + AssemblyRef.SystemWebExtensionsDesign), NonVisualControl, ToolboxBitmap(typeof(EmbeddedResourceFinder), "System.Web.Resources.Timer.bmp"), SupportsEventValidation, ToolboxItemFilterAttribute(AssemblyRef.SystemWebExtensions, ToolboxItemFilterType.Require), ] public class Timer : Control, IPostBackEventHandler, IScriptControl { private static readonly object TickEventKey = new object(); private bool _stateDirty; private new IPage _page; private ScriptManager _scriptManager; public Timer() {} private IPage IPage { get { if (null == _page) { Page page = Page; if (null == page) { throw new InvalidOperationException(AtlasWeb.Common_PageCannotBeNull); } _page = new PageWrapper(page); } return _page; } } [ ResourceDescription("Timer_TimerEnable"), Category("Behavior"), DefaultValue(true) ] public bool Enabled { get { object o = ViewState["Enabled"]; return (o != null) ? (bool)o : true; } set { if (!_stateDirty && IsTrackingViewState) { object o = ViewState["Enabled"]; _stateDirty = (null == o) ? true : (value != (bool)o); } ViewState["Enabled"] = value; } } [ ResourceDescription("Timer_TimerInterval"), Category("Behavior"), DefaultValue(60000) ] public int Interval { get { object o = ViewState["Interval"]; return (o != null) ? (int)o : 60000; } set { if (value <= 0) { throw new ArgumentOutOfRangeException("value", AtlasWeb.Timer_IntervalMustBeGreaterThanZero); } if (!_stateDirty && IsTrackingViewState) { object o = ViewState["Interval"]; _stateDirty = (null == o) ? true : (value != (int)o); } ViewState["Interval"] = value; } } internal ScriptManager ScriptManager { get { if (_scriptManager == null) { Page page = Page; if (page == null) { throw new InvalidOperationException(AtlasWeb.Common_PageCannotBeNull); } _scriptManager = ScriptManager.GetCurrent(page); if (_scriptManager == null) { throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, AtlasWeb.Common_ScriptManagerRequired, ID)); } } return _scriptManager; } } [ Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden), EditorBrowsable(EditorBrowsableState.Never) ] public override bool Visible { get { return base.Visible; } set { throw new NotImplementedException(); } } [ ResourceDescription("Timer_TimerTick"), Category("Action") ] public event EventHandlerTick { add { Events.AddHandler(TickEventKey, value); } remove { Events.RemoveHandler(TickEventKey, value); } } private string GetJsonState() { return "[" + ((Enabled) ? "true" : "false") + "," + Interval.ToString(CultureInfo.InvariantCulture) + "]"; } [SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Justification = "Matches IScriptControl interface.")] protected virtual IEnumerable GetScriptDescriptors() { ScriptComponentDescriptor s = new ScriptControlDescriptor("Sys.UI._Timer", this.ClientID); s.AddProperty("interval", Interval); s.AddProperty("enabled", Enabled); s.AddProperty("uniqueID",this.UniqueID); yield return s; } [SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Justification = "Matches IScriptControl interface.")] protected virtual IEnumerable GetScriptReferences() { yield return new ScriptReference("MicrosoftAjaxTimer.js", Assembly.GetAssembly(typeof(Timer)).FullName) ; } #region IPostBackEventHandler Members void IPostBackEventHandler.RaisePostBackEvent(string eventArgument) { RaisePostBackEvent(eventArgument); } #endregion #region IScriptControl Members IEnumerable IScriptControl.GetScriptDescriptors() { return GetScriptDescriptors(); } IEnumerable IScriptControl.GetScriptReferences() { return GetScriptReferences(); } #endregion [SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers")] protected internal override void OnPreRender(EventArgs e) { base.OnPreRender(e); this.ScriptManager.RegisterScriptControl(this); if (_stateDirty && this.ScriptManager.IsInAsyncPostBack) { _stateDirty = false; this.ScriptManager.RegisterDataItem(this, GetJsonState(), true); } // Get a postback event reference to ensure that the postback script is generated // and to make sure this is an expected name/value pair from an event validation // perspective. IPage.ClientScript.GetPostBackEventReference(new PostBackOptions(this, String.Empty)); } [SuppressMessage("Microsoft.Security", "CA2109:ReviewVisibleEventHandlers")] protected virtual void OnTick(EventArgs e) { EventHandler handler = (EventHandler )Events[TickEventKey]; if (handler != null) { handler(this, e); } } [SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Justification = "Matches IPostBackEventHandler interface.")] protected virtual void RaisePostBackEvent(string eventArgument) { if (Enabled) { OnTick(EventArgs.Empty); } } protected internal override void Render(HtmlTextWriter writer) { // Make sure we are in a form tag with runat=server. IPage.VerifyRenderingInServerForm(this); writer.AddAttribute(HtmlTextWriterAttribute.Id, ClientID); writer.AddStyleAttribute(HtmlTextWriterStyle.Visibility, "hidden"); writer.AddStyleAttribute(HtmlTextWriterStyle.Display, "none"); writer.RenderBeginTag(HtmlTextWriterTag.Span); writer.RenderEndTag(); // Span if (!DesignMode) { ScriptManager.RegisterScriptDescriptors(this); } } } } // 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
- TextSchema.cs
- InputBinding.cs
- TextEditorSpelling.cs
- SourceChangedEventArgs.cs
- ProviderCommandInfoUtils.cs
- XmlComplianceUtil.cs
- UseAttributeSetsAction.cs
- Util.cs
- SafeCryptoHandles.cs
- PauseStoryboard.cs
- unsafenativemethodsother.cs
- FixedPageAutomationPeer.cs
- XmlValidatingReaderImpl.cs
- DataServiceResponse.cs
- ResourceDescriptionAttribute.cs
- CompilerErrorCollection.cs
- FileDialog.cs
- SiteIdentityPermission.cs
- ToolStripPanelRenderEventArgs.cs
- Wizard.cs
- XAMLParseException.cs
- BamlBinaryWriter.cs
- DecryptRequest.cs
- MILUtilities.cs
- DispatcherOperation.cs
- InputMethodStateChangeEventArgs.cs
- EventListener.cs
- FatalException.cs
- DataErrorValidationRule.cs
- NavigationPropertySingletonExpression.cs
- Knowncolors.cs
- EndpointDiscoveryElement.cs
- _HeaderInfoTable.cs
- WindowsTokenRoleProvider.cs
- AssemblyAttributes.cs
- XmlSchemaNotation.cs
- DebugTrace.cs
- AssemblyBuilder.cs
- DateTimeValueSerializerContext.cs
- OdbcRowUpdatingEvent.cs
- IgnoreDeviceFilterElement.cs
- SyndicationElementExtensionCollection.cs
- HttpResponse.cs
- ObjectAssociationEndMapping.cs
- SmtpNetworkElement.cs
- Collection.cs
- IntranetCredentialPolicy.cs
- DragDeltaEventArgs.cs
- ToolStripPanelRow.cs
- ClientSideProviderDescription.cs
- UserControlAutomationPeer.cs
- DeviceContext2.cs
- TrackingRecord.cs
- CompareInfo.cs
- XamlSerializerUtil.cs
- OleCmdHelper.cs
- DependsOnAttribute.cs
- ResourceDescriptionAttribute.cs
- Thickness.cs
- Listbox.cs
- CrossSiteScriptingValidation.cs
- ErrorInfoXmlDocument.cs
- ConfigurationFileMap.cs
- ColumnMapProcessor.cs
- TdsParserSessionPool.cs
- ApplicationGesture.cs
- WebBrowser.cs
- LinkedResourceCollection.cs
- WorkflowNamespace.cs
- ColumnReorderedEventArgs.cs
- InstanceLockedException.cs
- LambdaSerializationException.cs
- GenericRootAutomationPeer.cs
- CheckBox.cs
- XmlEntityReference.cs
- EventSetter.cs
- CollectionBuilder.cs
- QuaternionRotation3D.cs
- ExitEventArgs.cs
- SchemaNamespaceManager.cs
- XXXOnTypeBuilderInstantiation.cs
- DataGridViewHitTestInfo.cs
- COM2AboutBoxPropertyDescriptor.cs
- LocationSectionRecord.cs
- TableStyle.cs
- WebService.cs
- CodeExporter.cs
- Relationship.cs
- EncoderParameters.cs
- PropertyPathWorker.cs
- OraclePermissionAttribute.cs
- RoleGroup.cs
- FixedSOMTableCell.cs
- VersionValidator.cs
- KeyedQueue.cs
- dsa.cs
- XAMLParseException.cs
- DecimalAnimationBase.cs
- EntitySetBase.cs
- DefinitionBase.cs