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
- Наследование
Примеры
В следующем примере показано, как ссылаться на пользовательский элемент управления и файл 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-адрес, отображаемый в качестве атрибута |
IsAjaxFrameworkScript(ScriptManager) |
Определяет, указывает ли данная ссылка на скрипт технологии AJAX ASP.NET. |
IsAjaxFrameworkScript(ScriptManager) |
Определяет, указывает ли данная ссылка на скрипт технологии AJAX ASP.NET. (Унаследовано от ScriptReferenceBase) |
IsFromSystemWebExtensions() |
Является устаревшей.
Определяет, содержит ли составной скрипт ссылку на скрипт, написанный с использованием технологии ASP.NET AJAX. |
MemberwiseClone() |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() |
Возвращает строку, которая представляет значение свойства Name или свойства Path, либо имя типа. |