Поделиться через


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 свойство указаны, Path свойство используется вместо Nameзначения, но Auto значение по-прежнему эквивалентно Inherit.

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

Имя Описание
ScriptReference()

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

ScriptReference(String, String)

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

ScriptReference(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 скриптом.

IsFromSystemWebExtensions()
Устаревшие..

Указывает, содержит ли составной скрипт ссылку на скрипт платформы AJAX ASP.NET.

MemberwiseClone()

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

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

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

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