Como: Adicionar cliente Script Events para controles de servidor Web do ASP.NET
Você pode adicionar script de cliente a controles em uma página Web ASP.NET declarativamente, como você faria para elementos HTML.Como alternativa, você pode adicionar eventos de script de cliente a um controle de servidor Web do ASP.NET, por meio de programação, o que é útil se o evento ou o código basear-se nas informações que estão disponíveis somente em tempo de execução.
Observação: |
---|
Você pode fazer referência a controles pela identificação no script de cliente.Para obter mais informações, consulte Script de Cliente em Páginas da Web ASP.NET. |
Adicionar um evento onclick de script de cliente aos botões requer um procedimento especial, que é apresentado posteriormente neste tópico.
Observação: |
---|
O suporte para script de cliente depende do navegador.Por exemplo, Internet Explorer, Mozilla e navegadores para dispositivos móveis podem fornecer diferentes tipos de suporte para script de cliente. |
Para adicionar um manipulador de eventos de cliente a um controle de servidor ASP.NET declarativamente
Na marcação do controle, adicione um atributo para o evento, por exemplo, onmouseover ou onkeyup.Para o valor do atributo, adicione o script de cliente que você deseja executar.
Observação: Sempre adicione um ponto-e-vírgula (;) após o script de cliente no atributo.Isso é necessário para que, se o ASP.NET gerar script de cliente para o controle (por exemplo, se a propriedade AutoPostBack do controle estiver definida como true), seu código será executado primeiro.
Quaisquer pares atributo/valor na marcação do controle que não correspondem às propriedades do controle são passados para o navegador como se estivessem.
O exemplo de código a seguir mostra uma página Web do ASP.NET que inclui script de cliente para alterar a cor do texto do botão quando o usuário passar o mouse sobre ele.
<%@ Page Language="VB"%> <html> <head > <title>Untitled Page</title> <script type="text/javascript"> var previousColor; function MakeRed() { previousColor = window.event.srcElement.style.color; window.event.srcElement.style.color = "#FF0000"; } function RestoreColor() { window.event.srcElement.style.color = previousColor; } </script> </head> <body> <form id="form1" > <asp:button id="Button1" text="Button1" onmouseover="MakeRed();"onmouseout="RestoreColor();" /> </form> </body> </html>
<%@ Page Language="C#" %>
<html>
<head >
<title>Untitled Page</title>
<script type="text/javascript">
var previousColor;
function MakeRed()
{
previousColor = window.event.srcElement.style.color;
window.event.srcElement.style.color = "#FF0000";
}
function RestoreColor()
{
window.event.srcElement.style.color = previousColor;
}
</script>
</head>
<body>
<form id="form1" >
<asp:button id="Button1"
text="Button1"
onmouseover="MakeRed();"onmouseout="RestoreColor();" />
</form>
</body>
</html>
Para adicionar um manipulador de eventos de cliente para um controle ASP.NET por meio de programação
No evento Init ou Load da página, chame o método Add da coleção Attributes do controle.
O exemplo de código a seguir mostra como adicionar script de cliente a um controle TextBox.O script de cliente exibe o tamanho do texto no controle TextBox.O script assume que a página contém um elemento span chamado spanCounter.
Protected Page_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) Dim displayControlName As String = "spanCounter" TextBox1.Attributes.Add("onkeyup", _ displayControlName & ".innerText=this.value.length;") End Sub
protected void Page_Load(object sender, EventArgs e)
{
String displayControlName = "spanCounter";
TextBox1.Attributes.Add("onkeyup", displayControlName +
".innerText=this.value.length;");
}
Para adicionar um evento de clique de cliente a um controle de botão
No controle do botão (controles Button, LinkButton e ImageButton), defina a propriedade OnClientClick como o script de cliente a executar.
O exemplo de código a seguir mostra como adicionar um evento de clique de script de cliente para um controle Button.
<%@ Page Language="VB" %> <script > Sub Button1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Label1.Text = "Server click handler called." End Sub </script> <body> <form id="form1" > <asp:Button ID="Button1" Runat="server" OnClick="Button1_Click" OnClientClick="return confirm('Ready to submit.')" Text="Test Client Click" /> <br /> <asp:Label ID="Label1" Runat="server" text="" /> </form> </body> </html>
<%@ Page Language="C#" %>
<script >
protected void Button1_Click(Object sender, EventArgs e)
{
Label1.Text = "Server click handler called.";
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<body>
<form id="form1" >
<asp:Button ID="Button1" Runat="server"
OnClick="Button1_Click"
OnClientClick="return confirm('Ready to submit.')"
Text="Test Client Click" />
<br />
<asp:Label ID="Label1" Runat="server" text="" />
</form>
</body>
</html>
Segurança
Script de cliente pode executar funções potencialmente mal-intencionadas no computador cliente.Seja extremamente cuidadoso com o script que você escreve em uma página, especialmente se o script for gerado ou alterado em resposta a entrada do usuário.Para obter mais informações, consulte Visão Geral de Scripts Maliciosos.
Consulte também
Tarefas
Como: conjunto atributos HTML para controles em páginas da Web do ASP.NET
Como: Adicionar script de cliente dinamicamente a páginas da Web do ASP.NET