ScriptReference Class
Registers an ECMAScript (JavaScript) file for use on an ASP.NET Web page.
Assembly: System.Web.Extensions (in System.Web.Extensions.dll)
| Name | Description | |
|---|---|---|
![]() | ScriptReference() | Initializes a new instance of the ScriptReference class. |
![]() | ScriptReference(String) | Initializes a new instance of the ScriptReference class by using a specified path. |
![]() | ScriptReference(String, String) | Initializes a new instance of the ScriptReference class by using a specified name and assembly. |
| Name | Description | |
|---|---|---|
![]() | Assembly | Gets or sets the name of the assembly that contains the client script file as an embedded resource. |
![]() | IgnoreScriptPath | Obsolete. Gets or sets a value that indicates whether the ScriptPath property is included in the URL when you register a client script file from a resource. |
![]() | Name | Gets or sets the name of the embedded resource that contains the client script file. |
![]() | NotifyScriptLoaded | Obsolete. Gets or sets a value that indicates whether the ScriptResourceHandler object automatically adds code at the end of the ECMAScript (JavaScript) file to call the client NotifyScriptLoaded method of the Sys.Application class.(Inherited from ScriptReferenceBase.) |
![]() | Path | Gets or sets the path of the referenced client script file, relative to the Web page.(Inherited from ScriptReferenceBase.) |
![]() | ResourceUICultures | Gets or sets a comma-delimited list of UI cultures that are supported by the Path property.(Inherited from ScriptReferenceBase.) |
![]() | ScriptMode | Gets or sets the version of the client script file (release or debug) to use.(Inherited from ScriptReferenceBase.) |
| Name | Description | |
|---|---|---|
![]() | Equals(Object) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | Finalize() | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.) |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | GetUrl(ScriptManager, Boolean) | This API supports the product infrastructure and is not intended to be used directly from your code. Retrieves the URL that is rendered as the value of the src attribute of the script element.(Overrides ScriptReferenceBase.GetUrl(ScriptManager, Boolean).) |
![]() | IsAjaxFrameworkScript(ScriptManager) | Determines whether the script reference is an AJAX script.(Overrides ScriptReferenceBase.IsAjaxFrameworkScript(ScriptManager).) |
![]() | IsFromSystemWebExtensions() | Obsolete. This API supports the product infrastructure and is not intended to be used directly from your code. Indicates whether the composite script contains a reference to an ASP.NET AJAX framework script.(Overrides ScriptReferenceBase.IsFromSystemWebExtensions().) |
![]() | MemberwiseClone() | |
![]() | ToString() | Returns a string that represents the value of the Name property, the Path property, or the type name.(Overrides Object.ToString().) |
You can include a JavaScript file on an ASP.NET Web page by registering it through a ScriptReference object. You can register a script file that is located as a .js file (a static script file) on the Web site. You can also register a script file that is embedded as a resource in an assembly. After registering the script file, you can use its functions in client script on the Web page.
To register a static script file, set the Path property of the ScriptReference object to the relative location of the file.
To register a script file that is embedded as a resource in an assembly, set the Assembly property to the name of the assembly that contains the file. Then set the Name property to the name of the .js file that is embedded in the assembly. In that case, the script file must be embedded, not linked.
You set the ScriptMode property to indicate whether to use the debug or release version of the script.
The Auto value produces different results depending on whether it refers to a standalone script file or to a script file that is embedded as a resource in an assembly. A standalone script file is defined with the Path property. An assembly reference must be accessed through the Name and Assembly properties. The results for the Auto value are as follows:
When it is applied to a standalone script file where the Path property is specified, the Auto value is equivalent to Release.
When it is applied to a script reference in an assembly, Auto is equivalent to Inherit. When only Name is specified, it is used to reference the script. When Name and the Path property are both specified, the Path property is used instead of Name, but the Auto value is still equivalent to Inherit.
The following example shows how to reference a custom control and a JavaScript file that is embedded in the control assembly. The assembly is assumed to be in the Bin folder of the Web site. The custom control animates UpdatePanel controls. The JavaScript file is compiled as an embedded resource that is named SampleControl.UpdatePanelAnimation.js. You register the embedded JavaScript file by using the Assembly and Name properties.
To use this example, compile the JavaScript file that is shown in the example as an embedded resource with the custom control. Put the resulting assembly into the Bin folder of the Web site. For an example of how to embed a JavaScript file in an assembly, see Walkthrough: Embedding a JavaScript File as a Resource in an Assembly.
The following example shows a page that uses the custom control.
<%@ Page Language="VB" AutoEventWireup="true" %> <%@ Register TagPrefix="Samples" Namespace="SampleControl" Assembly="SampleControl" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title>ScriptReference</title> </head> <body> <form id="form1" runat="server"> <div> <asp:ScriptManager ID="ScriptManager1" EnablePartialRendering="True" runat="server"> <Scripts> <asp:ScriptReference Assembly="SampleControl" Name="SampleControl.UpdatePanelAnimation.js" /> </Scripts> </asp:ScriptManager> <Samples:UpdatePanelAnimationWithClientResource ID="UpdatePanelAnimator1" BorderColor="Green" Animate="true" UpdatePanelID="UpdatePanel1" runat="server" > </Samples:UpdatePanelAnimationWithClientResource> <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server"> <ContentTemplate> <asp:Calendar ID="Calendar2" runat="server"> </asp:Calendar> </ContentTemplate> </asp:UpdatePanel> </div> </form> </body> </html>
The following example shows the custom control class definition.
Imports System.Web.UI Imports System.Drawing Imports System.Globalization Public Class UpdatePanelAnimationWithClientResource Inherits Control Private _updatePanelID As String Private _borderColor As Color Private _animate As Boolean Public Property BorderColor() As Color Get Return _borderColor End Get Set(ByVal value As Color) _borderColor = value End Set End Property Public Property UpdatePanelID() As String Get Return _updatePanelID End Get Set(ByVal value As String) _updatePanelID = value End Set End Property Public Property Animate() As Boolean Get Return _animate End Get Set(ByVal value As Boolean) _animate = value End Set End Property Protected Overrides Sub OnPreRender(ByVal e As EventArgs) MyBase.OnPreRender(e) If (Animate) Then Dim updatePanel As UpdatePanel = CType(Me.FindControl(UpdatePanelID), UpdatePanel) Dim script As String = String.Format( _ CultureInfo.InvariantCulture, _ "Sys.Application.add_load(function(sender, args) {{var {0}_borderAnimation = new BorderAnimation('{1}');var panelElement = document.getElementById('{0}');if (args.get_isPartialLoad()) {{{0}_borderAnimation.animate(panelElement);}}}});", _ updatePanel.ClientID, _ ColorTranslator.ToHtml(BorderColor)) ScriptManager.RegisterStartupScript( _ Me, _ GetType(UpdatePanelAnimationWithClientResource), _ ClientID, _ script, _ True) End If End Sub End Class
The following example shows the supporting JavaScript file.
BorderAnimation = function(color) { this._color = color; } BorderAnimation.prototype = { animate: function(panelElement) { var s = panelElement.style; s.borderWidth = '2px'; s.borderColor = this._color; s.borderStyle = 'solid'; window.setTimeout( function() {{ s.borderWidth = 0; }}, 500); } }
The following example shows code that you must add to the AssemblyInfo file of the project that contains the custom control and the JavaScript file.
Available since 3.5
Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.


