ScriptReference Class


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Registers an ECMAScript (JavaScript) file for use on an ASP.NET Web page.

Namespace:   System.Web.UI
Assembly:  System.Web.Extensions (in System.Web.Extensions.dll)


public class ScriptReference : ScriptReferenceBase


Initializes a new instance of the ScriptReference class.


Initializes a new instance of the ScriptReference class by using a specified path.

System_CAPS_pubmethodScriptReference(String, String)

Initializes a new instance of the ScriptReference class by using a specified name and assembly.


Gets or sets the name of the assembly that contains the client script file as an embedded resource.


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.


Gets or sets the name of the embedded resource that contains the client script file.


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.)


Gets or sets the path of the referenced client script file, relative to the Web page.(Inherited from ScriptReferenceBase.)


Gets or sets a comma-delimited list of UI cultures that are supported by the Path property.(Inherited from ScriptReferenceBase.)


Gets or sets the version of the client script file (release or debug) to use.(Inherited from ScriptReferenceBase.)


Determines whether the specified object is equal to the current object.(Inherited from Object.)


Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)


Serves as the default hash function. (Inherited from Object.)


Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_protmethodGetUrl(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).)


Determines whether the script reference is an AJAX script.(Overrides ScriptReferenceBase.IsAjaxFrameworkScript(ScriptManager).)


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().)


Creates a shallow copy of the current Object.(Inherited from Object.)


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="C#" %>
<%@ Register TagPrefix="Samples" Namespace="SampleControl" Assembly="SampleControl" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 

<script runat="server">


<html xmlns="">
<head runat="server">
    <form id="form1" runat="server">
            <asp:ScriptManager ID="ScriptManager1" 
                <asp:ScriptReference Assembly="SampleControl" Name="SampleControl.UpdatePanelAnimation.js" />

                     runat="server" >
            <asp:UpdatePanel ID="UpdatePanel1" 
                    <asp:Calendar ID="Calendar2" 

The following example shows the custom control class definition.

using System;
using System.Drawing;
using System.Web.UI;
using System.Web;
using System.Globalization;

namespace SampleControl
    public class UpdatePanelAnimationWithClientResource : Control
        private string _updatePanelID;
        private Color _borderColor;
        private Boolean _animate;
        public Color BorderColor
                return _borderColor;
                _borderColor = value;

        public string UpdatePanelID
                return _updatePanelID;
                _updatePanelID = value;

        public Boolean Animate
                return _animate;
                _animate = value;
        protected override void OnPreRender(EventArgs e)
            if (Animate)

                UpdatePanel updatePanel = (UpdatePanel)FindControl(UpdatePanelID);

                string script = String.Format(
Sys.Application.add_load(function(sender, args) {{
var {0}_borderAnimation = new BorderAnimation('{1}');    
var panelElement = document.getElementById('{0}');
     if (args.get_isPartialLoad()) {{


The following example shows the supporting JavaScript file.

BorderAnimation = function(color) {
    this._color = color;

BorderAnimation.prototype = {
    animate: function(panelElement) {
        var s =;
        s.borderWidth = '2px';
        s.borderColor = this._color;
        s.borderStyle = 'solid';

            function() {{
                s.borderWidth = 0;

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.

[assembly: System.Web.UI.WebResource("SampleControl.UpdatePanelAnimation.js", "application/x-javascript")]

.NET Framework
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.

Return to top