ScriptReference Класс

Определение

Регистрирует файл ECMAScript (JavaScript) для использования в веб — странице 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
Наследование
ScriptReference

Примеры

В следующем примере показано, как ссылаться на пользовательский элемент управления и файл JavaScript, внедренный в сборку элемента управления. Предполагается, что сборка находится в папке Bin веб-сайта. Настраиваемый элемент управления анимирует UpdatePanel элементы управления. Файл JavaScript компилируется как внедренный ресурс с именем SampleControl.UpdatePanelAnimation.js. Внедренный файл JavaScript регистрируется с помощью Assembly свойств и Name свойств.

Чтобы использовать этот пример, скомпилируйте файл JavaScript, показанный в примере как внедренный ресурс с пользовательским элементом управления. Поместите полученную сборку в папку Bin веб-сайта. Пример внедрения файла JavaScript в сборку см. в пошаговом руководстве. Внедрение файла JavaScript в качестве ресурса в сборку.

В следующем примере показана страница, использующая пользовательский элемент управления.

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

В следующем примере показано определение пользовательского класса элемента управления.

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.

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

В следующем примере показан код, который необходимо добавить в файл AssemblyInfo проекта, который содержит пользовательский элемент управления и файл JavaScript.

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

Комментарии

Вы можете включить файл JavaScript на веб-страницу ASP.NET, зарегистрировав его с помощью ScriptReference объекта. Вы можете зарегистрировать файл скрипта, расположенный как файл .js (статический файл скрипта) на веб-сайте. Вы также можете зарегистрировать файл скрипта, внедренный в качестве ресурса в сборку. После регистрации файла скрипта его функции можно использовать в клиентском скрипте на веб-странице.

Чтобы зарегистрировать статический файл скриптаScriptReference, задайте Path для свойства объекта относительное расположение файла.

Чтобы зарегистрировать файл скрипта, внедренный в качестве ресурса в сборку, задайте Assembly для свойства имя сборки, содержащей файл. Затем задайте Name для свойства имя файла .js, внедренного в сборку. В этом случае файл скрипта должен быть внедрен, а не связан.

Свойство задается, ScriptMode чтобы указать, следует ли использовать отладочную или выпускную версию скрипта.

Значение Auto создает разные результаты в зависимости от того, относится ли он к автономному файлу скрипта или к файлу скрипта, внедренному в качестве ресурса в сборке. Отдельный файл скрипта определяется свойством Path . Доступ к ссылке на сборку должен осуществляться через Name свойства и Assembly свойства. Ниже приведены результаты для Auto значения.

  • При применении к автономному файлу скрипта, в котором Path указано свойство, Auto значение эквивалентно Release.

  • Если он применяется к ссылке скрипта в сборке, Auto эквивалентен Inherit. Если указан только Name этот параметр, он используется для ссылки на скрипт. Если Name и свойство указаныPath, свойство используется вместо Nameзначения, но Auto значение по-прежнему эквивалентноInheritPath.

Конструкторы

ScriptReference()

Инициализирует новый экземпляр класса ScriptReference.

ScriptReference(String)

Инициализирует новый экземпляр класса ScriptReference с помощью указанного принтера.

ScriptReference(String, String)

Инициализирует новый экземпляр класса ScriptReference, используя указанные имя и сборку.

Свойства

Assembly

Возвращает или задает имя сборки, содержащей пользовательский файл скрипта как внедренный ресурс.

IgnoreScriptPath
Является устаревшей.

Возвращает или задает значение, указывающее включено ли свойство ScriptPath в URL — адрес при регистрации пользовательского файла скрипта из ресурса.

Name

Возвращает или задает имя сборки, содержащей файл пользовательского скрипта как встроенный ресурс.

NotifyScriptLoaded
Является устаревшей.

Возвращает или задает значение, указывающее, добавляет ли объект ScriptResourceHandler код в конце файла ECMAScript (JavaScript) автоматически, чтобы вызвать клиентский метод NotifyScriptLoaded класса Sys.Application.

(Унаследовано от ScriptReferenceBase)
Path

Получает или задает путь к файлу клиентского скрипта, на который указывает ссылка, по отношению к веб-странице.

(Унаследовано от ScriptReferenceBase)
ResourceUICultures

Возвращает или задает разделенный запятыми список национальных пользовательских интерфейсов, поддерживаемых свойством Path.

(Унаследовано от ScriptReferenceBase)
ScriptMode

Возвращает или задает версию файла пользовательского скрипта для использования (окончательную или отладочную).

(Унаследовано от ScriptReferenceBase)

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
GetUrl(ScriptManager, Boolean)

Извлекает URL-адрес, отображаемый в качестве атрибута src элемента script.

IsAjaxFrameworkScript(ScriptManager)

Определяет, указывает ли данная ссылка на скрипт технологии AJAX ASP.NET.

IsAjaxFrameworkScript(ScriptManager)

Определяет, указывает ли данная ссылка на скрипт технологии AJAX ASP.NET.

(Унаследовано от ScriptReferenceBase)
IsFromSystemWebExtensions()
Является устаревшей.

Определяет, содержит ли составной скрипт ссылку на скрипт, написанный с использованием технологии ASP.NET AJAX.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, которая представляет значение свойства Name или свойства Path, либо имя типа.

Применяется к