ScriptReference Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Regista um ficheiro ECMAScript (JavaScript) para utilização numa página web 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
- Herança
Exemplos
O exemplo seguinte mostra como referenciar um controlo personalizado e um ficheiro JavaScript que está incorporado no assembly de controlo. Assume-se que a montagem está na pasta Bin do site. O controlo personalizado anima UpdatePanel os controlos. O ficheiro JavaScript é compilado como um recurso embutido que se chama SampleControl.UpdatePanelAnimation.js. Regista o ficheiro JavaScript embutido usando as Assembly propriedades e.Name
Para usar este exemplo, compila o ficheiro JavaScript mostrado no exemplo como um recurso incorporado com o controlo personalizado. Coloque a montagem resultante na pasta Bin do site. Para um exemplo de como incorporar um ficheiro JavaScript numa assembleia, veja Walkthrough: Incorporar um ficheiro JavaScript como recurso numa assembleia.
O exemplo seguinte mostra uma página que utiliza o controlo personalizado.
<%@ 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>
O exemplo seguinte mostra a definição personalizada da classe de controlo.
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
O exemplo seguinte mostra o ficheiro JavaScript de suporte.
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);
}
}
O exemplo seguinte mostra código que deve adicionar ao ficheiro AssemblyInfo do projeto que contém o controlo personalizado e o ficheiro JavaScript.
[assembly: System.Web.UI.WebResource("SampleControl.UpdatePanelAnimation.js", "application/x-javascript")]
<Assembly: System.Web.UI.WebResource("SampleControl.UpdatePanelAnimation.js", "application/x-javascript")>
Observações
Pode incluir um ficheiro JavaScript numa página Web ASP.NET registando-o através de um objeto ScriptReference. Pode registar um ficheiro de script localizado como um ficheiro .js (um ficheiro de script estático) no site. Também pode registar um ficheiro de script que está incorporado como recurso numa assembleia. Depois de registar o ficheiro de script, pode usar as suas funções no script cliente na página Web.
Para registar um ficheiro de script estático, defina a Path propriedade do ScriptReference objeto para a localização relativa do ficheiro.
Para registar um ficheiro de script que está embutido como recurso numa assembleia, defina a Assembly propriedade para o nome da assembly que contém o ficheiro. Depois define a Name propriedade para o nome do ficheiro .js que está embutido no assembly. Nesse caso, o ficheiro de script tem de ser incorporado, não ligado.
Defines a ScriptMode propriedade para indicar se deves usar a versão de depuração ou release do script.
O Auto valor produz resultados diferentes dependendo se se refere a um ficheiro de script autónomo ou a um ficheiro de script incorporado como recurso numa assembleia. Um ficheiro de script autónomo é definido com a Path propriedade. Uma referência de montagem deve ser acedida através das Name propriedades e.Assembly Os resultados para o Auto valor são os seguintes:
Quando é aplicado a um ficheiro de script autónomo onde a Path propriedade é especificada, o Auto valor é equivalente a Release.
Quando é aplicado a uma referência de script numa montagem, Auto é equivalente a Inherit. Quando apenas Name é especificado, é usado para referenciar o guião. Quando Name e a Path propriedade são ambas especificadas, a Path propriedade é usada em vez de Name, mas o Auto valor continua a ser equivalente a Inherit.
Construtores
| Name | Description |
|---|---|
| ScriptReference() |
Inicializa uma nova instância da ScriptReference classe. |
| ScriptReference(String, String) |
Inicializa uma nova instância da ScriptReference classe usando um nome e assembly especificados. |
| ScriptReference(String) |
Inicializa uma nova instância da ScriptReference classe usando um caminho especificado. |
Propriedades
| Name | Description |
|---|---|
| Assembly |
Obtém ou define o nome do assembly que contém o ficheiro de script cliente como um recurso embutido. |
| IgnoreScriptPath |
Obsoleto.
Recebe ou define um valor que indica se a ScriptPath propriedade está incluída no URL quando regista um ficheiro de script cliente a partir de um recurso. |
| Name |
Recebe ou define o nome do recurso embutido que contém o ficheiro de script cliente. |
| NotifyScriptLoaded |
Obsoleto.
Recebe ou define um valor que indica se o ScriptResourceHandler objeto adiciona automaticamente código no final do ficheiro ECMAScript (JavaScript) para chamar o método cliente NotifyScriptLoaded da classe Sys.Application . (Herdado de ScriptReferenceBase) |
| Path |
Obtém ou define o caminho do ficheiro de script cliente referenciado, em relação à página Web. (Herdado de ScriptReferenceBase) |
| ResourceUICultures |
Obtém ou define uma lista delimitada por vírgulas de culturas UI suportadas pela Path propriedade. (Herdado de ScriptReferenceBase) |
| ScriptMode |
Obtém ou define a versão do ficheiro de script cliente (release ou debug) a usar. (Herdado de ScriptReferenceBase) |
Métodos
| Name | Description |
|---|---|
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| GetUrl(ScriptManager, Boolean) |
Recupera a URL que é renderizada como o valor do |
| IsAjaxFrameworkScript(ScriptManager) |
Determina se a referência do script é um script AJAX. |
| IsFromSystemWebExtensions() |
Obsoleto.
Indica se o script composto contém uma referência a um script de framework ASP.NET AJAX. |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma cadeia que representa o valor da Name propriedade, da Path propriedade ou do nome do tipo. |