Freigeben über


ScriptReference Klasse

Definition

Registriert eine ECMAScript-Datei (JavaScript) für die Verwendung auf einer ASP.NET-Webseite.

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
Vererbung
ScriptReference

Beispiele

Im folgenden Beispiel wird gezeigt, wie sie auf ein benutzerdefiniertes Steuerelement und eine JavaScript-Datei verweisen, die in die Steuerelementassembly eingebettet ist. Die Assembly wird angenommen, dass sie im Ordner "Bin" der Website enthalten ist. Das benutzerdefinierte Steuerelement animiert UpdatePanel Steuerelemente. Die JavaScript-Datei wird als eingebettete Ressource kompiliert, die SampleControl.UpdatePanelAnimation.js benannt wird. Sie registrieren die eingebettete JavaScript-Datei mithilfe der Assembly eigenschaften Name .

Um dieses Beispiel zu verwenden, kompilieren Sie die JavaScript-Datei, die im Beispiel als eingebettete Ressource mit dem benutzerdefinierten Steuerelement angezeigt wird. Fügen Sie die resultierende Assembly in den Ordner "Bin" der Website ein. Ein Beispiel zum Einbetten einer JavaScript-Datei in eine Assembly finden Sie unter Exemplarische Vorgehensweise: Einbetten einer JavaScript-Datei als Ressource in einer Assembly.

Das folgende Beispiel zeigt eine Seite, die das benutzerdefinierte Steuerelement verwendet.

<%@ 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>

Im folgenden Beispiel wird die benutzerdefinierte Steuerelementklassendefinition dargestellt.

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

Im folgenden Beispiel wird die unterstützte JavaScript-Datei dargestellt.

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);
    }
}

Im folgenden Beispiel wird Code gezeigt, den Sie der AssemblyInfo-Datei des Projekts hinzufügen müssen, das das benutzerdefinierte Steuerelement und die JavaScript-Datei enthält.

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

Hinweise

Sie können eine JavaScript-Datei auf einer ASP.NET Webseite einschließen, indem Sie sie über ein ScriptReference Objekt registrieren. Sie können eine Skriptdatei registrieren, die sich als .js Datei (eine statische Skriptdatei) auf der Website befindet. Sie können auch eine Skriptdatei registrieren, die als Ressource in eine Assembly eingebettet ist. Nachdem Sie die Skriptdatei registriert haben, können Sie die Funktionen im Clientskript auf der Webseite verwenden.

Um eine statische Skriptdatei zu registrieren, legen Sie die Path Eigenschaft des ScriptReference Objekts auf den relativen Speicherort der Datei fest.

Um eine Skriptdatei zu registrieren, die als Ressource in eine Assembly eingebettet ist, legen Sie die Assembly Eigenschaft auf den Namen der Assembly fest, die die Datei enthält. Legen Sie dann die Name Eigenschaft auf den Namen der .js-Datei fest, die in die Assembly eingebettet ist. In diesem Fall muss die Skriptdatei eingebettet werden, nicht verknüpft.

Sie legen die ScriptMode Eigenschaft fest, um anzugeben, ob die Debug- oder Releaseversion des Skripts verwendet werden soll.

Der Auto Wert erzeugt unterschiedliche Ergebnisse, je nachdem, ob es sich auf eine eigenständige Skriptdatei oder auf eine Skriptdatei bezieht, die als Ressource in eine Assembly eingebettet ist. Eine eigenständige Skriptdatei wird mit der Path Eigenschaft definiert. Auf einen Assemblyverweis muss über die Name Eigenschaften Assembly zugegriffen werden. Die Ergebnisse für den Auto Wert sind wie folgt:

  • Wenn sie auf eine eigenständige Skriptdatei angewendet wird, in der die Path Eigenschaft angegeben wird, entspricht Releaseder Auto Wert .

  • Wenn es auf einen Skriptverweis in einer Assembly angewendet wird, Auto entspricht Inherites . Wenn nur Name angegeben wird, wird es verwendet, um auf das Skript zu verweisen. Wenn Name und die Path Eigenschaft beide angegeben werden, wird Namedie Path Eigenschaft anstelle von , aber der Auto Wert entspricht noch Inherit.

Konstruktoren

ScriptReference()

Initialisiert eine neue Instanz der ScriptReference-Klasse.

ScriptReference(String)

Initialisiert unter Verwendung eines angegebenen Pfads eine neue Instanz der ScriptReference-Klasse.

ScriptReference(String, String)

Initialisiert unter Verwendung eines angegebenen Namens und einer angegebenen Assembly eine neue Instanz der ScriptReference-Klasse.

Eigenschaften

Assembly

Ruft den Namen der Assembly ab, die die Clientskriptdatei als eingebettete Ressource enthält, oder legt diesen fest.

IgnoreScriptPath
Veraltet.

Ruft beim Registrieren einer Clientskriptdatei von einer Ressource einen Wert ab, der angibt, ob in der URL die ScriptPath-Eigenschaft enthalten ist, oder legt diesen fest.

Name

Ruft den Namen der eingebetteten Ressource mit der Clientskriptdatei ab oder legt diesen fest.

NotifyScriptLoaded
Veraltet.

Ruft einen Wert ab, der angibt, ob das ScriptResourceHandler-Objekt automatisch Code am Ende der ECMAScript-Datei (JavaScript) zum Aufrufen der Client-NotifyScriptLoaded-Methode der Sys.Application-Klasse anfügt, oder legt ihn fest.

(Geerbt von ScriptReferenceBase)
Path

Ruft relativ zur Webseite den Pfad der Clientskriptdatei ab, auf die verwiesen wird, oder legt diesen fest.

(Geerbt von ScriptReferenceBase)
ResourceUICultures

Ruft eine durch Kommas getrennte Liste mit von der Path-Eigenschaft unterstützten UI-Kulturen ab oder legt diese fest.

(Geerbt von ScriptReferenceBase)
ScriptMode

Ruft die Version der zu verwendenden Clientskriptdatei (Release- oder Debugversion) ab oder legt diese fest.

(Geerbt von ScriptReferenceBase)

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
GetUrl(ScriptManager, Boolean)

Ruft die URL zurück, die als Wert für das src-Attribut des script-Elements gerendert wird.

IsAjaxFrameworkScript(ScriptManager)

Bestimmt, ob der Skriptverweis ein AJAX-Skript ist.

IsAjaxFrameworkScript(ScriptManager)

Bestimmt, ob der angegebene Skriptverweis ein ASP.NET AJAX-Skript ist.

(Geerbt von ScriptReferenceBase)
IsFromSystemWebExtensions()
Veraltet.

Gibt an, ob das zusammengesetzte Skript einen Verweis auf ein ASP.NET-AJAX-Frameworkskript enthält

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die den Wert der Name-Eigenschaft, der Path-Eigenschaft oder den Typnamen darstellt.

Gilt für