ScriptReference ScriptReference ScriptReference ScriptReference Class

定義

ASP.NET Web ページで使用する ECMAScript (JavaScript) ファイルを登録します。Registers an ECMAScript (JavaScript) file for use on an ASP.NET Web page.

public ref class ScriptReference : System::Web::UI::ScriptReferenceBase
public class ScriptReference : System.Web.UI.ScriptReferenceBase
type ScriptReference = class
    inherit ScriptReferenceBase
Public Class ScriptReference
Inherits ScriptReferenceBase
継承

次の例は、コントロールアセンブリに埋め込まれているカスタムコントロールと JavaScript ファイルを参照する方法を示しています。The following example shows how to reference a custom control and a JavaScript file that is embedded in the control assembly. アセンブリは、Web サイトの Bin フォルダーにあると想定されます。The assembly is assumed to be in the Bin folder of the Web site. カスタムコントロールは、 UpdatePanelコントロールをアニメーション化します。The custom control animates UpdatePanel controls. JavaScript ファイルは、SampleControl という名前の埋め込みリソースとしてコンパイルされます。The JavaScript file is compiled as an embedded resource that is named SampleControl.UpdatePanelAnimation.js. 埋め込み JavaScript ファイルを登録するにはAssemblyNameプロパティとプロパティを使用します。You register the embedded JavaScript file by using the Assembly and Name properties.

この例を使用するには、例に示されている JavaScript ファイルを、カスタムコントロールを含む埋め込みリソースとしてコンパイルします。To use this example, compile the JavaScript file that is shown in the example as an embedded resource with the custom control. 生成されたアセンブリを Web サイトの Bin フォルダーに配置します。Put the resulting assembly into the Bin folder of the Web site. JavaScript ファイルをアセンブリに埋め込む方法の例については、 「チュートリアル:JavaScript ファイルをリソースとしてアセンブリに埋め込む。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" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head 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>
<%@ 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.

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
        {
            get
            {
                return _borderColor;
            }
            set
            {
                _borderColor = value;
            }
        }

        public string UpdatePanelID
        {
            get
            {
                return _updatePanelID;
            }
            set
            {
                _updatePanelID = value;
            }
        }

        public Boolean Animate
        {
            get
            {
                return _animate;
            }
            set
            {
                _animate = value;
            }
        }
        protected override void OnPreRender(EventArgs e)
        {
            base.OnPreRender(e);
            if (Animate)
            {

                UpdatePanel updatePanel = (UpdatePanel)FindControl(UpdatePanelID);

                string script = 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(
                    this,
                    typeof(UpdatePanelAnimationWithClientResource),
                    ClientID,
                    script,
                    true);
            }
        }
    }
}
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

次の例は、サポートする JavaScript ファイルを示しています。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);
    }
}
        

次の例は、カスタムコントロールおよび JavaScript ファイルを含むプロジェクトの AssemblyInfo ファイルに追加する必要があるコードを示しています。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")]
<Assembly: System.Web.UI.WebResource("SampleControl.UpdatePanelAnimation.js", "application/x-javascript")> 

注釈

オブジェクトをScriptReference使用して登録することにより、ASP.NET Web ページに JavaScript ファイルを含めることができます。You can include a JavaScript file on an ASP.NET Web page by registering it through a ScriptReference object. Web サイトには、.js ファイル (静的スクリプトファイル) として配置されているスクリプトファイルを登録できます。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. スクリプトファイルの登録後、Web ページのクライアントスクリプトでその関数を使用できます。After registering the script file, you can use its functions in client script on the Web page.

静的スクリプトファイルを登録するには、 Path ScriptReferenceオブジェクトのプロパティをファイルの相対位置に設定します。To register a static script file, set the Path property of the ScriptReference object to the relative location of the file.

アセンブリにリソースとして埋め込まれているスクリプトファイルを登録するにAssemblyは、プロパティをファイルを含むアセンブリの名前に設定します。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. 次に、 Nameプロパティを、アセンブリに埋め込まれている .js ファイルの名前に設定します。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.

スクリプトのデバッグScriptModeバージョンまたはリリースバージョンのどちらを使用するかを示すには、プロパティを設定します。You set the ScriptMode property to indicate whether to use the debug or release version of the script.

Autoを指定すると、スタンドアロンスクリプトファイルを参照するか、アセンブリにリソースとして埋め込まれているスクリプトファイルを参照するかによって、異なる結果が生成されます。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. スタンドアロンスクリプトファイルは、 Pathプロパティを使用して定義されます。A standalone script file is defined with the Path property. アセンブリ参照には、 NameプロパティとAssemblyプロパティを使用してアクセスする必要があります。An assembly reference must be accessed through the Name and Assembly properties. Auto値の結果は次のようになります。The results for the Auto value are as follows:

  • Pathプロパティが指定されているスタンドアロンスクリプトファイルに適用されたAuto場合、値はReleaseと同じになります。When it is applied to a standalone script file where the Path property is specified, the Auto value is equivalent to Release.

  • アセンブリ内のスクリプト参照に適用される場合、 AutoはとInherit同じです。When it is applied to a script reference in an assembly, Auto is equivalent to Inherit. のみNameを指定した場合は、スクリプトを参照するために使用されます。When only Name is specified, it is used to reference the script. Name Inherit Name Autoとプロパティの両方Pathが指定されている場合、の代わりにプロパティが使用されますが、値はと同じです。 PathWhen 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.

コンストラクター

ScriptReference() ScriptReference() ScriptReference() ScriptReference()

ScriptReference クラスの新しいインスタンスを初期化します。Initializes a new instance of the ScriptReference class.

ScriptReference(String) ScriptReference(String) ScriptReference(String) ScriptReference(String)

指定されたパスを使用して、ScriptReference クラスの新しいインスタンスを初期化します。Initializes a new instance of the ScriptReference class by using a specified path.

ScriptReference(String, String) ScriptReference(String, String) ScriptReference(String, String) ScriptReference(String, String)

指定された名前とアセンブリを使用して、ScriptReference クラスの新しいインスタンスを初期化します。Initializes a new instance of the ScriptReference class by using a specified name and assembly.

プロパティ

Assembly Assembly Assembly Assembly

クライアント スクリプト ファイルがリソースとして埋め込まれているアセンブリの名前を取得または設定します。Gets or sets the name of the assembly that contains the client script file as an embedded resource.

IgnoreScriptPath IgnoreScriptPath IgnoreScriptPath IgnoreScriptPath

リソースからクライアント スクリプト ファイルを登録する場合に、URL に ScriptPath プロパティが含まれるかどうかを示す値を取得または設定します。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 Name Name Name

クライアント スクリプト ファイルが含まれる埋め込みリソースの名前を取得または設定します。Gets or sets the name of the embedded resource that contains the client script file.

NotifyScriptLoaded NotifyScriptLoaded NotifyScriptLoaded NotifyScriptLoaded

ECMAScript (JavaScript) ファイルの末尾に、Sys.Application クラスのクライアント NotifyScriptLoaded メソッドを呼び出すコードを ScriptResourceHandler オブジェクトが自動的に追加するかどうかを示す値を取得または設定します。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 Path Path Path

参照するクライアント スクリプト ファイルのパスを、Web ページからの相対的なパスとして取得または設定します。Gets or sets the path of the referenced client script file, relative to the Web page.

(Inherited from ScriptReferenceBase)
ResourceUICultures ResourceUICultures ResourceUICultures ResourceUICultures

Path プロパティによってサポートされる UI カルチャのコンマ区切りリストを取得または設定します。Gets or sets a comma-delimited list of UI cultures that are supported by the Path property.

(Inherited from ScriptReferenceBase)
ScriptMode ScriptMode ScriptMode ScriptMode

使用するクライアント スクリプト ファイルのバージョン (リリースまたはデバッグ) を取得または設定します。Gets or sets the version of the client script file (release or debug) to use.

(Inherited from ScriptReferenceBase)

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
GetUrl(ScriptManager, Boolean) GetUrl(ScriptManager, Boolean) GetUrl(ScriptManager, Boolean) GetUrl(ScriptManager, Boolean)

src 要素の script 属性の値として表示される URL を取得します。Retrieves the URL that is rendered as the value of the src attribute of the script element.

IsAjaxFrameworkScript(ScriptManager) IsAjaxFrameworkScript(ScriptManager) IsAjaxFrameworkScript(ScriptManager) IsAjaxFrameworkScript(ScriptManager)

スクリプト参照が AJAX スクリプトであるかどうかを判断します。Determines whether the script reference is an AJAX script.

IsFromSystemWebExtensions() IsFromSystemWebExtensions() IsFromSystemWebExtensions() IsFromSystemWebExtensions()

複合スクリプトに ASP.NET AJAX フレームワーク スクリプトへの参照が含まれているかどうかを示します。Indicates whether the composite script contains a reference to an ASP.NET AJAX framework script.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Name プロパティ、Path プロパティ、または型名の値を表す文字列を返します。Returns a string that represents the value of the Name property, the Path property, or the type name.

適用対象