ScriptReference Klasa

Definicja

Rejestruje plik ECMAScript (JavaScript) do użycia na stronie internetowej ASP.NET.

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

Przykłady

W poniższym przykładzie pokazano, jak odwoływać się do niestandardowej kontrolki i pliku JavaScript osadzonego w zestawie kontrolek. Zakłada się, że zestaw znajduje się w folderze Bin witryny sieci Web. Kontrolka niestandardowa animuje kontrolki UpdatePanel . Plik JavaScript jest kompilowany jako zasób osadzony o nazwie SampleControl.UpdatePanelAnimation.js. Osadzony plik JavaScript można zarejestrować przy użyciu właściwości Assembly i Name .

Aby użyć tego przykładu, skompiluj plik JavaScript pokazany w przykładzie jako zasób osadzony z kontrolką niestandardową. Umieść wynikowy zestaw w folderze Bin witryny sieci Web. Aby zapoznać się z przykładem osadzania pliku JavaScript w zestawie, zobacz Przewodnik: osadzanie pliku JavaScript jako zasobu w zestawie.

W poniższym przykładzie pokazano stronę korzystającą z kontrolki niestandardowej.

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

W poniższym przykładzie przedstawiono niestandardową definicję klasy kontrolek.

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

W poniższym przykładzie pokazano pomocniczy plik JavaScript.

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

Poniższy przykład przedstawia kod, który należy dodać do pliku AssemblyInfo projektu zawierającego kontrolkę niestandardową i plik JavaScript.

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

Uwagi

Plik JavaScript można uwzględnić na stronie ASP.NET sieci Web, rejestrując go za pomocą ScriptReference obiektu. Możesz zarejestrować plik skryptu, który znajduje się jako plik .js (plik skryptu statycznego) w witrynie sieci Web. Możesz również zarejestrować plik skryptu osadzony jako zasób w zestawie. Po zarejestrowaniu pliku skryptu można użyć jego funkcji w skryfcie klienta na stronie sieci Web.

Aby zarejestrować plik skryptu statycznego, ustaw Path właściwość ScriptReference obiektu na względną lokalizację pliku.

Aby zarejestrować plik skryptu osadzony jako zasób w zestawie, ustaw Assembly właściwość na nazwę zestawu zawierającego plik. Następnie ustaw Name właściwość na nazwę pliku .js osadzonego w zestawie. W takim przypadku plik skryptu musi być osadzony, a nie połączony.

Należy ustawić ScriptMode właściwość , aby wskazać, czy używać wersji debugowania lub wydania skryptu.

Wartość Auto generuje różne wyniki w zależności od tego, czy odwołuje się do pliku skryptu autonomicznego, czy do pliku skryptu osadzonego jako zasób w zestawie. Autonomiczny plik skryptu jest definiowany za pomocą Path właściwości . Dostęp do odwołania do zestawu należy uzyskać za pośrednictwem Name właściwości i Assembly . Wyniki dla Auto wartości są następujące:

  • Po zastosowaniu go do autonomicznego pliku skryptu, w którym Path określono właściwość, Auto wartość jest równoważna Release.

  • Zastosowanie go do odwołania do skryptu w zestawie Auto jest równoważne .Inherit Po określeniu parametru Name jest on używany do odwoływanie się do skryptu. Gdy Name i Path właściwość są określone, Path właściwość jest używana zamiast Name, ale wartość jest nadal równoważna Auto Inherit.

Konstruktory

ScriptReference()

Inicjuje nowe wystąpienie klasy ScriptReference.

ScriptReference(String)

Inicjuje ScriptReference nowe wystąpienie klasy przy użyciu określonej ścieżki.

ScriptReference(String, String)

Inicjuje ScriptReference nowe wystąpienie klasy przy użyciu określonej nazwy i zestawu.

Właściwości

Assembly

Pobiera lub ustawia nazwę zestawu zawierającego plik skryptu klienta jako zasób osadzony.

IgnoreScriptPath
Nieaktualne.

Pobiera lub ustawia wartość wskazującą, czy ScriptPath właściwość jest uwzględniona w adresie URL podczas rejestrowania pliku skryptu klienta z zasobu.

Name

Pobiera lub ustawia nazwę osadzonego zasobu zawierającego plik skryptu klienta.

NotifyScriptLoaded
Nieaktualne.

Pobiera lub ustawia wartość, która wskazuje, czy obiekt automatycznie dodaje kod na końcu pliku ECMAScript (JavaScript) w celu wywołania metody klienta klasy ScriptResourceHandler NotifyScriptLoaded Sys.Application.

(Odziedziczone po ScriptReferenceBase)
Path

Pobiera lub ustawia ścieżkę przywołynego pliku skryptu klienta względem strony sieci Web.

(Odziedziczone po ScriptReferenceBase)
ResourceUICultures

Pobiera lub ustawia rozdzielaną przecinkami listę kultur interfejsu użytkownika obsługiwanych przez Path właściwość .

(Odziedziczone po ScriptReferenceBase)
ScriptMode

Pobiera lub ustawia wersję pliku skryptu klienta (wersja lub debugowanie) do użycia.

(Odziedziczone po ScriptReferenceBase)

Metody

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
GetUrl(ScriptManager, Boolean)

Pobiera adres URL renderowany jako wartość src atrybutu script elementu.

IsAjaxFrameworkScript(ScriptManager)

Określa, czy odwołanie do skryptu jest skryptem AJAX.

IsAjaxFrameworkScript(ScriptManager)

Określa, czy określone odwołanie do skryptu jest ASP.NET AJAX.

(Odziedziczone po ScriptReferenceBase)
IsFromSystemWebExtensions()
Nieaktualne.

Wskazuje, czy skrypt złożony zawiera odwołanie do skryptu platformy AJAX ASP.NET.

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()

Zwraca ciąg reprezentujący wartość Name właściwości, Path właściwości lub nazwy typu.

Dotyczy