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

Das folgende Beispiel zeigt, wie Sie auf ein benutzerdefiniertes Steuerelement und eine JavaScript-Datei verweisen, die in die Steuerelementassembly eingebettet ist. Die Assembly wird angenommen, dass sie sich im Ordner "Bin" der Website befindet. Das benutzerdefinierte Steuerelement animiert UpdatePanel Steuerelemente. Die JavaScript-Datei wird als eingebettete Ressource kompiliert, die SampleControl.UpdatePanelAnimation.jsheißt. Sie registrieren die eingebettete JavaScript-Datei mithilfe der und Name der Assembly Eigenschaften.

Um dieses Beispiel zu verwenden, kompilieren Sie die Im Beispiel gezeigte JavaScript-Datei als eingebettete Ressource mit dem benutzerdefinierten Steuerelement. 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 Walkthrough: Embedding a JavaScript File as a Resource in an 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>

Das folgende Beispiel zeigt die Definition der benutzerdefinierten Steuerelementklasse.

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

Das folgende Beispiel zeigt die unterstützende JavaScript-Datei.

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

Das folgende Beispiel zeigt Code, den Sie der AssemblyInfo-Datei des Projekts hinzufügen müssen, die 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 (statische Skriptdatei) auf der Website befindet. Sie können auch eine Skriptdatei registrieren, die als Ressource in einer Assembly eingebettet ist. Nachdem Sie die Skriptdatei registriert haben, können Sie deren 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.

Wenn Sie eine Skriptdatei registrieren möchten, die als Ressource in einer 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 sein, 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 er sich auf eine eigenständige Skriptdatei oder auf eine Skriptdatei bezieht, die als Ressource in einer Assembly eingebettet ist. Eine eigenständige Skriptdatei wird mit der Path Eigenschaft definiert. Auf einen Assemblyverweis muss über die und Assembly die Name Eigenschaften 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 es Inherit. Wenn nur Name angegeben wird, wird es verwendet, um auf das Skript zu verweisen. Wenn Name und die Path Eigenschaft beide angegeben werden, wird die Path Eigenschaft anstelle von Name, aber der Auto Wert ist immer noch gleichwertig mit Inherit.

Konstruktoren

Name Beschreibung
ScriptReference()

Initialisiert eine neue Instanz der ScriptReference-Klasse.

ScriptReference(String, String)

Initialisiert eine neue Instanz der ScriptReference Klasse mithilfe eines angegebenen Namens und einer assembly.

ScriptReference(String)

Initialisiert eine neue Instanz der ScriptReference Klasse mithilfe eines angegebenen Pfads.

Eigenschaften

Name Beschreibung
Assembly

Dient zum Abrufen oder Festlegen des Namens der Assembly, die die Clientskriptdatei als eingebettete Ressource enthält.

IgnoreScriptPath
Veraltet.

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die ScriptPath Eigenschaft in der URL enthalten ist, wenn Sie eine Clientskriptdatei aus einer Ressource registrieren.

Name

Dient zum Abrufen oder Festlegen des Namens der eingebetteten Ressource, die die Clientskriptdatei enthält.

NotifyScriptLoaded
Veraltet.

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob das ScriptResourceHandler Objekt automatisch Code am Ende der ECMAScript (JavaScript)-Datei hinzufügt, um die Clientmethode NotifyScriptLoaded der Sys.Application-Klasse aufzurufen.

(Geerbt von ScriptReferenceBase)
Path

Ruft den Pfad der referenzierten Clientskriptdatei relativ zur Webseite ab oder legt diesen fest.

(Geerbt von ScriptReferenceBase)
ResourceUICultures

Ruft eine durch Trennzeichen getrennte Liste der Benutzeroberflächenkulturen ab, die von der Path Eigenschaft unterstützt werden, oder legt diese fest.

(Geerbt von ScriptReferenceBase)
ScriptMode

Ruft die Version der zu verwendenden Clientskriptdatei (Release oder Debug) ab oder legt sie fest.

(Geerbt von ScriptReferenceBase)

Methoden

Name Beschreibung
Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
GetUrl(ScriptManager, Boolean)

Ruft die URL ab, die als Wert des src Attributs des script Elements gerendert wird.

IsAjaxFrameworkScript(ScriptManager)

Bestimmt, ob es sich bei dem Skriptverweis um ein AJAX-Skript handelt.

IsFromSystemWebExtensions()
Veraltet.

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

MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
ToString()

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

Gilt für: