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