Escolar Documentos
Profissional Documentos
Cultura Documentos
NET AJAX
Página 1
Curso ASP.NET AJAX
por Júlio Battisti. No Mercado Livre, somente o usuário GROZA é que tem
Ao adquirir este ebook você tem o direito de lê-lo na tela do seu computador e de
cópia ou qualquer outro meio de reprodução, para outras pessoas. Se você recebeu
este ebook através do e-mail ou via ftp de algum site da Internet, ou através de
um CD de Revista, saiba que você está com uma cópia pirata, ilegal, não
Lei 5988. Se for este o caso entre em contato com o autor, através do e-mail
cópia você irá remunerar, mediante uma pequena quantia, o trabalho do autor e
sobre novos cursos que gostaria de ver disponibilizados, entre em contato pelo e-
mail: webmaster@juliobattisti.com.br.
novidades:
• Cursos de informática.
Página 2
Curso ASP.NET AJAX
NÃO AUTORIZADA
PREVISTA DE CADEIA
BATTISTI
Página 3
Curso ASP.NET AJAX
Página 4
Curso ASP.NET AJAX
Para que você possa acompanhar as lições deste curso é necessário que você já
Explorer.
Página 5
Curso ASP.NET AJAX
Índice do Curso
Introdução 8
CAPITULO 1 10
Entendo o AJAX 10
CAPITULO 2 32
ASP.NET AJAX 32
CAPITULO 3 88
O controle UpdatePanel 88
CAPITULO 4 115
CAPITULO 5 128
CAPITULO 6 141
CAPITULO 7 160
CAPITULO 8 168
APENDICE A 189
JAVASCRIPT 189
Página 6
Curso ASP.NET AJAX
Variáveis 195
Operadores 196
Funções 211
Eventos 213
Arrays 216
Data 219
String 221
Math 223
APENDICE B 226
APENDICE C 240
Instalando o Visual Studio Web Developers Express Edition 2005 e o SQL Server 2005
Página 7
Curso ASP.NET AJAX
Introdução
Neste curso você vai aprender a o que é e como utilizar AJAX em suas aplicações
Microsoft.
Com AJAX suas aplicações WEB terão interfaces bem mais ricas e aumentarão a
experiência positiva dos visitantes. Seus sistemas para Web e Intranet terão uma
Capítulo 1: Neste capitulo você vai aprender o que é o AJAX, onde ele surgiu e
Capítulo 2: Neste capitulo você vai conhecer o framework ASP.NET AJAX e vai
aprendendo como ele pode deixar mais rica sua interface e torna-la mais interativa
ASP.NET AJAX. Neste capitulo você vai aprender mais sobre o controle
UpdatePanel.
UpdateProgress.
Página 8
Curso ASP.NET AJAX
Capítulo 5: Neste capitulo você vai aprender mais sobre o controle Timer.
aplicações já construídas.
Capítulo 8: Neste capitulo você vai aprender a utilizar Web Services em suas
APENDICE A: Aqui você vai poder tirar suas duvidas sobre a linguagem Javascript.
APENDICE C: Aqui você vai aprender a instalar o Visual Studio Web Developers
Para enviar suas dúvidas referentes aos assuntos e exemplos abordados neste
para criticar e para elogiar (porque não?), é só entrar em contato pelo e-mail:
www.moroni.com.br
Página 9
Curso ASP.NET AJAX
CAPITULO 1
Entendo o AJAX
Como você vai ver durante todo esse livro eu gosto de trabalhar com vários
como você pode aplicar os conhecimentos que esta adquirindo na prática. Fique a
Para acompanhar os exemplos você vai precisar ter uma versão do Visual Studio
instalada em sua maquina, desde que ela seja na versão 2005 você pode usá-la
Developers Express Edition 2005, por ser uma versão gratuita que todos podem
baixar facilmente do site da Microsoft. Se tiver duvidas sobre onde baixar e como
instalar essa ferramenta consulte o APENDICE C no final deste livro. Estarei usando
também a versão Express do SQL Server 2005 para os exemplos com banco de
dados.
http://msdn.microsoft.com/vstudio/express/
Página 10
Curso ASP.NET AJAX
Agora que já falamos sobre o nosso “ambiente de produção” vamos fazer nosso
DOM e XML. O objetivo do AJAX é evitar que a cada solicitação do servidor a página
solicitações ao servidor.
Página 11
Curso ASP.NET AJAX
Neste nosso primeiro exemplo vamos criar uma aplicação cliente com Javascript e
valores inteiros. Para isso teremos duas páginas na nossa aplicação, uma que
atuará como o cliente e outra como servidor que retornará o valor calculado.
2 – Crie um novo formulário para sua aplicação com nome Default2.aspx, para
isso clique com o botão direito sobre o nome do projeto na janela Solution
Página 12
Curso ASP.NET AJAX
3 - Na janela que se abre selecione Web Form, marque a opção Place code in
separate file (isso faz com que seja criado um arquivo separado para o código da
Página 13
Curso ASP.NET AJAX
na imagem a seguir. Note que para adicionar contres HTML usamos a guia
HTML na Toolbox.
Página 14
Curso ASP.NET AJAX
Página 15
Curso ASP.NET AJAX
6 – Mude a propriedade Value dos dois primeiros controles (Text1 e Text2) para 0,
como a imagem:
Página 16
Curso ASP.NET AJAX
Página 17
Curso ASP.NET AJAX
HTML da página.
<script language="javascript">
var ajax;
function openAjax() {
if (window.ActiveXObject) {
else if (window.XMLHttpRequest)
{
Autor: Herbert Moroni Cavallari da Costa Gois
Site: www.juliobattisti.com.br
Este material não pode ser utilizado em Sala de Aulas e Para Ministrar Treinamentos!!!
Página 18
Curso ASP.NET AJAX
function atualizar() {
if (ajax.readyState==4) {
document.getElementById('Text3').value = ajax.responseText;
function total() {
url="Default2.aspx?A=" + document.getElementById('Text1').value +
"&B=" + document.getElementById('Text2').value;
ajax.open("GET",url,true);
ajax.onreadystatechange = atualizar;
ajax.send();
</script>
vou explicar em detalhes cada uma das funções do código acima. Para maiores
<body onload="openAjax();">
Isso faz com que a função Javascript openAjax() seja executada assim que a
Página 19
Curso ASP.NET AJAX
Isso permite que a função Javascript total() seja executada sempre que o evento
alguma dúvida:
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head runat="server">
<title>Untitled Page</title>
<script language="javascript">
var ajax;
function openAjax() {
if (window.ActiveXObject) {
else if (window.XMLHttpRequest) {
Página 20
Curso ASP.NET AJAX
function atualizar() {
if (ajax.readyState==4) {
document.getElementById('Text3').value =
ajax.responseText;
function total() {
url="Default2.aspx?A=" +
document.getElementById('Text1').value +
"&B=" + document.getElementById('Text2').value;
ajax.open("GET",url,true);
ajax.onreadystatechange = atualizar;
ajax.send();
</script>
</head>
<body onload="openAjax();">
<form id="form1">
<div>
<br />
<br />
<br />
<br />
Página 21
Curso ASP.NET AJAX
</div>
</form>
</body>
</html>
Dim a As Integer = 0
Dim b As Integer = 0
a = Convert.ToInt16(Request.QueryString("A").ToString())
End If
b = Convert.ToInt16(Request.QueryString("B").ToString())
End If
Response.Write(a + b)
Página 22
Curso ASP.NET AJAX
Esse código é bem simples. Primeiro declaramos duas variáveis do tipo Integer e
soma dos valores das duas variáveis. Esse texto será recuperado pelo nosso
int a = 0;
int b = 0;
Página 23
Curso ASP.NET AJAX
if (Request.QueryString["A"] != null){
a = Convert.ToInt16(Request.QueryString["A"].ToString());
if (Request.QueryString["B"] != null){
b = Convert.ToInt16(Request.QueryString["B"].ToString());
Response.Write(a + b);
apague tudo, deixe apenas a primeira linha de código que contém a diretiva Page.
Como a imagem:
Página 24
Curso ASP.NET AJAX
13 – Volte para a página Default.aspx e execute sua aplicação (para isso você
pode clicar em F5). Você pode ser questionado com a seguinte tela:
Página 25
Curso ASP.NET AJAX
Digite alguns números nas duas primeiras caixas de texto. Observe que conforme
você digita o texto o resultado já vai sendo calculado e exibido na terceira caixa de
texto sem recarregar nenhuma vez a pagina, isso é AJAX. Usamos Javascript, o
rodando ASP.NET.
A primeira função:
function openAjax() {
if (window.ActiveXObject) {
else if (window.XMLHttpRequest) {
Internet Explorer como um objeto ActiveX chamado XMLHTTP. Logo após, outros
objeto ActiveX.
Página 26
Curso ASP.NET AJAX
Isso significa que precisaremos verificar qual o objeto que o browser trabalha,
XMLHTTP a variável ajax que declaramos antes desta função no Javascript. Se for
forma idêntica.
A segunda função:
function atualizar() {
if (ajax.readyState==4) {
document.getElementById('Text3').value = ajax.responseText;
por ela a terceira caixa de texto. Fazemos isso através da propriedade readyState
0 - não inicializado;
1 - carregamento;
2 - carregado;
3 - interativo;
4 - completo.
Página 27
Curso ASP.NET AJAX
Você pode utilizar o estágio 1 para exibir uma mensagem de carregando, por
Uma outra propriedade que usamos nesta função é a responseText. Através dela
atribuímos o valor que esta sendo retornado a caixa de texto. Essa propriedade
sempre retorna uma string com os dados do servidor web. Mas ao invés dela você
documento pode ser manipulado por você utilizando DOM e Javascript. Para
pode retornar o número 404 indicando que a página solicitada não pode ser
encontrada.
Não vou me aprofundar em exemplos sobre estas propriedades, mas você pode
A terceira função:
Página 28
Curso ASP.NET AJAX
function total() {
url="Default2.aspx?A=" + document.getElementById('Text1').value +
"&B=" + document.getElementById('Text2').value;
ajax.open("GET",url,true);
ajax.onreadystatechange = atualizar;
ajax.send();
Esta função pega os valores das duas primeiras caixas de texto e envia para a
url="Default2.aspx?A=" + document.getElementById('Text1').value +
"&B=" + document.getElementById('Text2').value;
"Default2.aspx?A=12&B=11"
Nesta função usamos os métodos open e send. Segue descrição detalhada dos
"GET" ou "POST";
Página 29
Curso ASP.NET AJAX
assíncrona;
opcionalmente os dados.
requisição.
informado.
cabeçalhos (header).
objeto XMLHttpRequest. Ela indica qual função será executada sempre que o
atualizar().
Como percebeu embora você possa criar aplicações com interfaces bem mais ricas
em AJAX isso não é algo simples, principalmente pelo fato dele ser uma tecnologia
Página 30
Curso ASP.NET AJAX
cada navegador pode ter ainda instalado ou não certos tipos de extensões que
Então você vai precisar escrever código javascript para cada uma das possibilidades
pode eliminar potenciais clientes porque eles não têm os recursos que você
O que eu quero deixar bem claro aqui é que tudo tem seu preço. Com o ganho na
interface temos uma perca de produtividade e isso não é bom. Principalmente para
Studio.
que ninguém quer, principalmente as empresas contratantes que cada vez mais
Página 31
Curso ASP.NET AJAX
esses frameworks também não ajudam muito para quem desenvolve em ASP.NET
usando o Visual Studio .NET pela difícil integração com o mesmo. Através deles
perdemos o poder dos Web Server Controls como você viu no exemplo que
próprio Framework integrado com o Visual Studio. Primeiro conhecido como ATLAS
e agora chamado de ASP.NET AJAX ele é o tema principal deste livro. Através dele
produtividade.
AJAX principalmente com a versão futura do Visual Studio que deve ajudar na
CAPITULO 2
ASP.NET AJAX
em suas aplicações web. Como ele pode melhorar a produtividade e deixar suas
Página 32
Curso ASP.NET AJAX
Vamos agora instalar os recursos que usaremos do AJAX ASP.NET. Se você tiver
instalado em sua maquina versões anteriores das que estamos instalando, como a
prosseguir.
Página 33
Curso ASP.NET AJAX
2 – No menu clique em AJAX. (Para chegar nesta página você pode acessar
Página 34
Curso ASP.NET AJAX
3 - Clique em Download.
Página 35
Curso ASP.NET AJAX
Você vai ser direcionado a uma página de download da Microsoft como mostra a
imagem a seguir:
Página 36
Curso ASP.NET AJAX
Você pode salvar este arquivo no seu disco rígido clicando em Salvar ou executa-lo
Página 37
Curso ASP.NET AJAX
7 – Clique em Next.
Página 38
Curso ASP.NET AJAX
9 – Clique em Install.
Página 39
Curso ASP.NET AJAX
Página 40
Curso ASP.NET AJAX
Perceba ao criar o novo projeto que foi adicionado um novo Template chamado
usadas pelos componentes ASP.NET AJAX. Mais a frente você vai conhecer essas
Página 41
Curso ASP.NET AJAX
ToolBox do Visual Studio, o resultado disso é a nova guia que você tem disponível
Página 42
Curso ASP.NET AJAX
Página 43
Curso ASP.NET AJAX
browser do cliente. Por isso ele é necessário em todas as páginas que você for
janela Solution Explorer, clique com o botão direito sobre o nome do projeto e
Página 44
Curso ASP.NET AJAX
Add.
Página 45
Curso ASP.NET AJAX
pasta especialmente reservada a ele chamada App_Data. Isto é uma boa prática,
clique em Sim.
Página 46
Curso ASP.NET AJAX
6 – Vamos adicionar uma tabela no nosso banco de dados, para isso na janela
Database Explorer, clique com o botão direito sobre Tables e selecione Add New
Table.
seguinte imagem:
Página 47
Curso ASP.NET AJAX
8 – Clique com o botão direito sobre ProjetoId e selecione Set Primary Key,
como mostra a próxima imagem. Isso torna o campo ProjetoId a chave primária
da nossa tabela.
Página 48
Curso ASP.NET AJAX
Página 49
Curso ASP.NET AJAX
Database Explorer clique com o botão direito sobre a tabela Projetos e selecione
Página 50
Curso ASP.NET AJAX
Página 51
Curso ASP.NET AJAX
Dataset tipado. Há várias técnicas para criar uma camada de acesso a dados, mas
simples de realizar essa tarefa. Para adicionar um Dataset tipado proceda como
fizemos para adicionar um banco de dados, mas na janela Add New Item ao invés
Página 52
Curso ASP.NET AJAX
14 – O Dataset assim como o banco de dados pode ser adicionado em uma pasta
ilustrada pela próxima imagem para que a pasta já seja criada e o Dataset
adicionado na mesma.
Página 53
Curso ASP.NET AJAX
Página 54
Curso ASP.NET AJAX
17 – Podemos fazer o acesso aos dados de duas formas. Usando comandos SQL, e
Next.
Página 55
Curso ASP.NET AJAX
Página 56
Curso ASP.NET AJAX
Add. Após você pode clicar em close. A tabela Projetos vai ser adicionada na
Página 57
Curso ASP.NET AJAX
20 – A janela Query Builder nos ajuda na criação dos comandos SQL. Selecione
Página 58
Curso ASP.NET AJAX
21 – Clique em OK.
22 – A próxima janela exibe o comando SQL criado pelo Query Builder e permite
que você faça ajustes se necessário. O comando deve ser igual ao mostrado na
Página 59
Curso ASP.NET AJAX
Na próxima tela você pode escolher e nomear os métodos que deseja que o
Página 60
Curso ASP.NET AJAX
23 – Para nosso exemplo não vamos utilizar o método Fill então desmarque esta
opção.
Página 61
Curso ASP.NET AJAX
25 – Clique em Next.
A próxima imagem resume todas as tarefas que serão realizadas pelo assistente.
Página 62
Curso ASP.NET AJAX
26 – Clique em Finish.
Página 63
Curso ASP.NET AJAX
Página 64
Curso ASP.NET AJAX
Página 65
Curso ASP.NET AJAX
Página 66
Curso ASP.NET AJAX
• 1 DropDownList
• 1 GridView
• 1 DetailsView
Página 67
Curso ASP.NET AJAX
com valor true e o item Incompleto com o valor false como mostra as duas
próximas imagens:
Página 68
Curso ASP.NET AJAX
Página 69
Curso ASP.NET AJAX
33 – Selecione Object na opção Where will the application get data from? e
Selecionamos Object na tela acima porque vamos recuperar nossos dados através
Página 70
Curso ASP.NET AJAX
Você pode agora escolher o método do TableAdapter que deseja. Nós só temos
um método, o GetProjetosPorStatus.
Página 71
Curso ASP.NET AJAX
35 – Clique em Next.
ou seja, false serão exibidos apenas os registros que o campo Completa tiverem o
selecione DropDownList1.
Página 72
Curso ASP.NET AJAX
37 – Clique em Finish.
Página 73
Curso ASP.NET AJAX
Perceba que cada vez que você muda a opção do DropDownList1 a página é
Página 74
Curso ASP.NET AJAX
Página 75
Curso ASP.NET AJAX
imagem:
Página 76
Curso ASP.NET AJAX
Página 77
Curso ASP.NET AJAX
44 – Execute a aplicação.
Página 78
Curso ASP.NET AJAX
Página 79
Curso ASP.NET AJAX
Página 80
Curso ASP.NET AJAX
Conditional.
Página 81
Curso ASP.NET AJAX
50 – Execute a aplicação.
Página 82
Curso ASP.NET AJAX
para isso adicione o mesmo a sua página Default.aspx e digite dentro dele o texto
Página 83
Curso ASP.NET AJAX
O conteúdo deste controle será exibido enquanto a pagina recarregar algum dos
se você executar a página agora não vai conseguir visualizar o texto por ser muito
rápida sua apresentação. Para que você possa ver o texto vamos manipular a
Página 84
Curso ASP.NET AJAX
System.Threading.Thread.Sleep(3000)
Página 85
Curso ASP.NET AJAX
55 – Clique em Editar para qualquer projeto, altere o nome, por exemplo, e clique
imagem:
Página 86
Curso ASP.NET AJAX
Neste capitulo você aprendeu como é fácil construir aplicações com AJAX utilizando
Página 87
Curso ASP.NET AJAX
CAPITULO 3
O controle UpdatePanel
Usando o UpdadePanel você pode atualizar partes especificas da página sem usar
nenhum código Javascript, com isso você pode ter uma boa redução no tráfico
• Usar triggers.
Site chamada UpdatePanel como mostra imagem abaixo. Neste exemplo usarei a
linguagem C#.
Página 88
Curso ASP.NET AJAX
Página 89
Curso ASP.NET AJAX
TextBox1.Text = DateTime.Now.ToString();
TextBox2.Text = DateTime.Now.ToString();
Para a linguagem Visual Basic você usa a mesma linguagem só que sem o ponto-e-
TextBox1.Text = DateTime.Now.ToString()
TextBox2.Text = DateTime.Now.ToString()
Página 90
Curso ASP.NET AJAX
Esse código tem por objetivo atribuir o valor da data e hora atual nas duas caixas
Perceba que ao clicar no botão a data e hora atual é exibida em cada uma das
caixas de texto.
Página 91
Curso ASP.NET AJAX
Página 92
Curso ASP.NET AJAX
7 – Execute a aplicação.
8 - Clique sobre o botão e perceba que agora apenas a caixa de texto que esta
Página 93
Curso ASP.NET AJAX
ChildrenAsTrigger estiver com valor True. Essa propriedade é sempre True por
esta dentro do UpdatePanel não chame uma atualização assíncrona. Você vai ver
Página 94
Curso ASP.NET AJAX
mostra a imagem:
Página 95
Curso ASP.NET AJAX
PostBackTrigger.
Página 96
Curso ASP.NET AJAX
13 – Clique em Ok.
<ContentTemplate>
<asp:TextBox ID="TextBox2"
runat="server"></asp:TextBox><br />
</ContentTemplate>
<Triggers>
</Triggers>
</asp:UpdatePanel>
Página 97
Curso ASP.NET AJAX
Note no código acima a tag <Triggers> quem faz referencia ao controle que não vai
14 – Execute a aplicação.
Página 98
Curso ASP.NET AJAX
17 - Da mesma forma que você pode usar uma trigger para fazer com que um
controle dentro do UpdatePanel não chame uma atualização assíncrona você pode
também usar uma trigger para fazer com que um controle fora do UpdatePanel
propriedade Triggers.
imagem:
selecione Click.
Página 99
Curso ASP.NET AJAX
Agora toda vez que o evento Click do Button1 for disparado será solicitado uma
atualização assíncrona.
<ContentTemplate>
<asp:TextBox ID="TextBox2"
runat="server"></asp:TextBox><br />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1"
EventName="Click" />
</Triggers>
Página 100
Curso ASP.NET AJAX
</asp:UpdatePanel>
Note no código acima a tag <Triggers> quem faz referencia ao controle e ao evento
Página 101
Curso ASP.NET AJAX
22 - Execute a aplicação. Perceba que sempre que você clica no Button1 os dois
Página 102
Curso ASP.NET AJAX
Página 103
Curso ASP.NET AJAX
Quando a propriedade UpdateMode esta definida como always - que por sinal é o
uma página.
ser atualizado.
Página 104
Curso ASP.NET AJAX
dentro do UpdatePanel filho - ou seja aquele que esta dentro do outro - apenas
Página 105
Curso ASP.NET AJAX
Página 106
Curso ASP.NET AJAX
Se você executar sua pagina agora esse botão não faz nenhuma solicitação
UpdatePanel1.Update();
Isso ainda não é o suficiente para realizar uma atualização assíncrona. Precisamos
registrar o controle como uma trigger. Fazemos isso adicionando o seguinte código
Página 107
Curso ASP.NET AJAX
ScriptManager1.RegisterAsyncPostBackControl(Button3);
up1.ID = "UpdatePanel1";
up1.UpdateMode = UpdatePanelUpdateMode.Conditional;
Button1.ID = "Button1";
Button1.Text = "Button";
TextBox1.ID = "TextBox1";
Página 108
Curso ASP.NET AJAX
up1.ContentTemplateContainer.Controls.Add(Button1);
up1.ContentTemplateContainer.Controls.Add(TextBox1);
Page.Form.Controls.Add(up1);
TextBox1.Text = DateTime.Now.ToString();
Página 109
Curso ASP.NET AJAX
up1.ID = "UpdatePanel1"
up1.UpdateMode = UpdatePanelUpdateMode.Conditional
Autor: Herbert Moroni Cavallari da Costa Gois
Site: www.juliobattisti.com.br
Este material não pode ser utilizado em Sala de Aulas e Para Ministrar Treinamentos!!!
Página 110
Curso ASP.NET AJAX
Button1.ID = "Button1"
Button1.Text = "Button"
TextBox1.ID = "TextBox1"
up1.ContentTemplateContainer.Controls.Add(Button1)
up1.ContentTemplateContainer.Controls.Add(TextBox1)
Page.Form.Controls.Add(up1)
End Sub
EventArgs)
TextBox1.Text = DateTime.Now.ToString()
End Sub
Página 111
Curso ASP.NET AJAX
1 UpdatePanel;
1 Button;
1 TextBox;
Página 112
Curso ASP.NET AJAX
contexto mas por motivo didático mostrei como realizar esta tarefa.
up1.ID = "UpdatePanel1";
up1.UpdateMode = UpdatePanelUpdateMode.Conditional;
Button1.ID = "Button1";
TextBox1.ID = "TextBox1";
A propriedade Text do Button1 foi modificada para Button apenas para o botão
Button1.Text = "Button";
Página 113
Curso ASP.NET AJAX
TextBox1.Text = DateTime.Now.ToString();
up1.ContentTemplateContainer.Controls.Add(Button1);
up1.ContentTemplateContainer.Controls.Add(TextBox1);
Page.Form.Controls.Add(up1);
Nestes exemplos você já deve ter percebido o poder e o que você será capaz de
que não podem ser utilizados dentro do UpdatePanel, segue uma descrição deles:
• FileUpload;
Templates.
RegularExpressionValidator, RequeredFieldValidator e
Autor: Herbert Moroni Cavallari da Costa Gois
Site: www.juliobattisti.com.br
Este material não pode ser utilizado em Sala de Aulas e Para Ministrar Treinamentos!!!
Página 114
Curso ASP.NET AJAX
CAPITULO 4
O controle UpdateProgress
atualizações AJAX.
Página 115
Curso ASP.NET AJAX
• 3 Label
• 2 UpdatePanel
• 1 Button
• 1 Calendar
4 - Organize os controles como a figura abaixo, sendo que o controle Label1 esta
Página 116
Curso ASP.NET AJAX
Label1.Text = DateTime.Now.ToString
Label1.Text = DateTime.Now.ToString();
6 – Este mesmo código deve ser digitado para o evento Click do controle Button1
Página 117
Curso ASP.NET AJAX
evento necessário você pode dar um clique duplo sobre o Button1 e fazer o
mesmo para o controle Calendar então apenas digite o código. Seu painel de
Página 118
Curso ASP.NET AJAX
Página 119
Curso ASP.NET AJAX
9 – Se você executar o exemplo agora não notara diferença alguma. Isso porque o
processamento assíncrono que esta sendo realizado é bem simples – apenas trazer
demore três segundos. Para isso adicione a seguinte linha de código dentro dos
System.Threading.Thread.Sleep(3000)
Página 120
Curso ASP.NET AJAX
System.Threading.Thread.Sleep(3000);
Página 121
Curso ASP.NET AJAX
durante três segundos (3000 milisegundos), o tempo que a atualização leva para
um banco de dados que pode levar alguns segundos informando ao usuário que a
Perceba que a mensagem aguarde leva um pequeno tempo para aparecer. Você
Página 122
Curso ASP.NET AJAX
DynamicLayout.
UpdateProgress não utiliza nenhum espaço na página até que seja necessário.
True é o valor padrão. Se você executar sua aplicação vai perceber que sempre
Página 123
Curso ASP.NET AJAX
Página 124
Curso ASP.NET AJAX
AssociatedUpdatePanelID.
Página 125
Curso ASP.NET AJAX
Quero que você compreenda agora que ao fazer uma chamada assíncrona no
momento que outra já esta sendo executada, por padrão, a nova chamada é
imagem:
Página 126
Curso ASP.NET AJAX
É claro que você pode e vai utilizar bem mais recursos ou controles em suas
aplicações dos que eu estou usando nos exemplos do livro, mas as operações serão
as mesmas ou parecidas.
Página 127
Curso ASP.NET AJAX
CAPITULO 5
O controle Timer
definidos.
Neste capitulo faremos uma prática onde você entenderá o que é, e como utilizar o
controle Timer.
Site chamada Timer como mostra imagem abaixo. Neste exemplo usarei a
linguagem C#.
Página 128
Curso ASP.NET AJAX
Página 129
Curso ASP.NET AJAX
Página 130
Curso ASP.NET AJAX
O evento Tick é executado no servidor sempre que o controle Timer executar uma
Página 131
Curso ASP.NET AJAX
agora:
System.Threading.Thread.Sleep(3000);
System.Threading.Thread.Sleep(3000)
Página 132
Curso ASP.NET AJAX
Este código não é novidade para você nesta altura do livro. Novamente vamos
nosso exemplo este tempo é de três segundos ele foi somado ao tempo do
controle Timer. Mas em nossas aplicações dificilmente sabemos o tempo exato que
vai levar uma atualização assíncrona porque ela depende do volume de dados que
Página 133
Curso ASP.NET AJAX
imagem:
Página 134
Curso ASP.NET AJAX
O controle Timer efetua uma atualização assíncrona a cada 3 segundos. Mas uma
das atualizações demora mais do que três segundos para ser finalizada. Então
antes do que a atualização acabe é iniciada uma outra. O que acontece a primeira
que não acabou ainda? A resposta é: a primeira atualização, a que não finalizou
<ContentTemplate>
Text="Label"></asp:Label>
</ContentTemplate>
<Triggers>
Página 135
Curso ASP.NET AJAX
<asp:AsyncPostBackTrigger ControlID="Timer1"
EventName="Tick" />
</Triggers>
</asp:UpdatePanel>
imagem:
Página 136
Curso ASP.NET AJAX
imagem:
Página 137
Curso ASP.NET AJAX
Página 138
Curso ASP.NET AJAX
Página 139
Curso ASP.NET AJAX
Página 140
Curso ASP.NET AJAX
Com este exemplo concluído você é capaz de utilizar o controle Timer em suas
CAPITULO 6
A Classe PageRequestManager
Até agora em todos os nossos exemplos não usamos Javascript ou DOM, mas eles
processada;
• Enviar informações para o servidor de controles que não estão sendo usados
Página 141
Curso ASP.NET AJAX
atualização assíncrona.
servidor para uma aplicação ASP.NET. Esta classe possui métodos, propriedades e
APENDICES A e B.
Página 142
Curso ASP.NET AJAX
um Label e um Button.
Atualizando...
Página 143
Curso ASP.NET AJAX
System.Threading.Thread.Sleep(3000);
Label1.Text = DateTime.Now.ToString();
Página 144
Curso ASP.NET AJAX
Página 145
Curso ASP.NET AJAX
Até agora nenhuma novidade. Este é um exemplo semelhante aos que fizemos até
aqui. Mas entenda que como o ciclo de vida de uma pagina ASP.NET possui uma
assíncronas também temos alguns destes tipos de eventos. Vamos agora conhecer
Página 146
Curso ASP.NET AJAX
Esta tag representa o controle ScriptManager que esta adicionado a nossa pagina.
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_initializ
eRequest(Exibir);
function Exibir(){
alert("InitializeRequest");
</script>
Página 147
Curso ASP.NET AJAX
javascript Alert().
initializeRequest.
Sys.WebForms.PageRequestManager.getInstance().add_initializ
eRequest(Exibir);
Vamos executar nosso exemplo para compreender melhor o que este bloco faz.
mensagem:
Isso quer dizer que quando a requisição assíncrona foi iniciada, ou seja, quando o
pode e deve criar suas próprias funções para fazer uso desse evento nos seus
A e B.
Página 148
Curso ASP.NET AJAX
<script type="text/javascript">
prm.add_initializeRequest(Exibir);
function Exibir(){
alert("InitializeRequest");
</script>
Este código faz a mesma coisa que o anterior, mas separa um pouco melhor o
eventos como faremos a seguir. Nele criamos uma variável chamada prm e
método getInstance(). Isso facilita o uso dos eventos porque usamos a variável
initializeRequest.
assíncrona. Por isso sempre que você precisar utilizar essa classe deve recuperar
Página 149
Curso ASP.NET AJAX
prm.add_beginRequest(Exibir2);
function Exibir2(){
alert("BeginRequest");
Página 150
Curso ASP.NET AJAX
Página 151
Curso ASP.NET AJAX
Os próximos três eventos que são executados sempre que uma solicitação
prm.add_pageLoading(Exibir3);
function Exibir3(){
alert("PageLoading");
prm.add_pageLoaded(Exibir4);
function Exibir4(){
alert("PageLoaded");
prm.add_endRequest(Exibir5);
function Exibir5(){
alert("EndRequest");
<script type="text/javascript">
prm.add_initializeRequest(Exibir);
function Exibir(){
alert("InitializeRequest");
Página 152
Curso ASP.NET AJAX
prm.add_beginRequest(Exibir2);
function Exibir2(){
alert("BeginRequest");
prm.add_pageLoading(Exibir3);
function Exibir3(){
alert("PageLoading");
prm.add_pageLoaded(Exibir4);
function Exibir4(){
alert("PageLoaded");
prm.add_endRequest(Exibir5);
function Exibir5(){
alert("EndRequest");
</script>
14 - Execute sua aplicação. Agora para cada evento você tem uma mensagem
eventos são executados e permite que você escolha qual o evento vai ser usado em
Você também deve ter notado que o evento pageLoaded foi executado logo que a
pagina foi aberta sem que nenhuma atualização assíncrona tenha sido disparada.
Página 153
Curso ASP.NET AJAX
também.
alert(args.get_postBackElement().id);
uma instancia do objeto que executou uma solicitação assíncrona, e a partir daí
alert(obj.id);
Página 154
Curso ASP.NET AJAX
atribuir o mesmo a variável obj que facilita o uso do mesmo. Este código faz o
atualização assíncrona.
Foi utilizado um controle HTML porque este botão só vai ser utilizado no lado
cliente.
Página 155
Curso ASP.NET AJAX
18 – Selecione esse Button e mude a sua propriedade Value para Cancelar como
mostra a imagem:
próxima imagem:
function Cancelar(){
prm.abortPostBack();
Página 156
Curso ASP.NET AJAX
abortPostBack(). Lembre-se que prm é uma variável que tem uma instancia da
classe PageRequestManager.
20 – Ainda no código HTML localize o código HTML do Button que esta dentro do
onclick="Cancelar()" />
Página 157
Curso ASP.NET AJAX
função Cancelar().
é parada imediatamente.
Página 158
Curso ASP.NET AJAX
Para finalizar quero que você conheça a propriedade isInAsyncPostBack. Ela tem
function Exibir4(){
if (prm.get_isInAsyncPostBack()){
alert("PageLoaded");
Página 159
Curso ASP.NET AJAX
sendo referenciada pela variável prm. Então se o valor for true a mensagem do
Perceba que agora ao iniciar a aplicação a mensagem que estava sendo exibida
pelo evento PageLoaded não foi exibida. Isso porque na função Exibir4() que é
normalmente.
CAPITULO 7
existentes
Para usar o ASP.NET AJAX em uma aplicação já existente você precisa fazer
Vamos a uma prática para você entender melhor quais são estas modificações:
1 – Crie uma nova aplicação ASP.NET normal, utilize o Template ASP.NET Web
Página 160
Curso ASP.NET AJAX
<configSections>
<sectionGroup name="system.web.extensions"
type="System.Web.Configuration.SystemWebExtensionsSectionGroup,
PublicKeyToken=31bf3856ad364e35">
<sectionGroup name="scripting"
type="System.Web.Configuration.ScriptingSectionGroup,
PublicKeyToken=31bf3856ad364e35">
<section name="scriptResourceHandler"
type="System.Web.Configuration.ScriptingScriptResourceHandlerSection,
Página 161
Curso ASP.NET AJAX
PublicKeyToken=31bf3856ad364e35" requirePermission="false"
allowDefinition="MachineToApplication"/>
<sectionGroup name="webServices"
type="System.Web.Configuration.ScriptingWebServicesSectionGroup,
PublicKeyToken=31bf3856ad364e35">
<section name="jsonSerialization"
type="System.Web.Configuration.ScriptingJsonSerializationSection,
PublicKeyToken=31bf3856ad364e35" requirePermission="false"
allowDefinition="Everywhere"/>
<section name="profileService"
type="System.Web.Configuration.ScriptingProfileServiceSection,
PublicKeyToken=31bf3856ad364e35" requirePermission="false"
allowDefinition="MachineToApplication"/>
<section name="authenticationService"
type="System.Web.Configuration.ScriptingAuthenticationServiceSection,
PublicKeyToken=31bf3856ad364e35" requirePermission="false"
allowDefinition="MachineToApplication"/>
</sectionGroup>
</sectionGroup>
</sectionGroup>
</configSections>
Observe na imagem abaixo o local exato onde o código deve ser inserido:
Página 162
Curso ASP.NET AJAX
Para não ser necessário digitar todo este texto crie uma aplicação em branco
usando o Template ASP.NET AJAX-Enabled Web Site e copie o código que esta
no Web.config.
<system.web.extensions>.
<controls>
Página 163
Curso ASP.NET AJAX
PublicKeyToken=31bf3856ad364e35"/>
</controls>
Observe na imagem abaixo o local exato onde o código deve ser inserido:
utilizando a tag asp como este exemplo onde registramos o controle ScriptManager
na pagina:
Página 164
Curso ASP.NET AJAX
</asp:ScriptManager>
<assemblies>
<add assembly="System.Web.Extensions,
Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
</assemblies>
</compilation>
<httpHandlers>
type="System.Web.Script.Services.ScriptHandlerFactory,
PublicKeyToken=31bf3856ad364e35"/>
validate="false"
type="System.Web.Script.Services.ScriptHandlerFactory,
PublicKeyToken=31bf3856ad364e35"/>
type="System.Web.Handlers.ScriptResourceHandler,
PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>
<httpModules>
<add name="ScriptModule"
type="System.Web.Handlers.ScriptModule, System.Web.Extensions,
Página 165
Curso ASP.NET AJAX
Version=1.0.61025.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35"/>
</httpModules>
Observe na imagem abaixo o local exato onde o código deve ser inserido:
Página 166
Curso ASP.NET AJAX
Observe na imagem que no código acima também temos uma leve mudança na tag
<compilation>. Precisamos retirar a barra que encerra essa tag para inserir a tag
outra modificação.
ASP.NET AJAX.
Página 167
Curso ASP.NET AJAX
CAPITULO 8
ASP.NET AJAX
Neste capitulo vou concentrar em como tornar seu Web Service disponível em
uma aplicação ASP.NET AJAX e como usa-lo em suas aplicações. Para entender
para o capitulo.
Site chamada WebServices como mostra imagem abaixo. Neste exemplo usarei a
linguagem VB.NET.
Página 168
Curso ASP.NET AJAX
Service, para isso em Name digite Calcular.asmx, para que seja criado um
arquivo de código separado para o Web Service selecione a opção Place code in
Página 169
Curso ASP.NET AJAX
4 – Clique em Add.
5 - Para permitir que o Web Service seja acessado por script você precisa
<System.Web.Script.Services.ScriptService()> _
Em C#:
[System.Web.Script.Services.ScriptService]
Página 170
Curso ASP.NET AJAX
forma:
<ScriptService()> _
Em C#:
[ScriptService]
6 – Substitua a função HelloWorld que já esta criada no Web Service pela função
<WebMethod()> _
String
Return a + b
End Function
Em C#:
[WebMethod]
Página 171
Curso ASP.NET AJAX
7 – Vamos testar nosso Web Service, para isso clique com o botão direito sobre o
imagem:
Página 172
Curso ASP.NET AJAX
Página 173
Curso ASP.NET AJAX
8 – Clique em Somar.
Agora você pode testar o método Somar como mostra a imagem seguinte:
Página 174
Curso ASP.NET AJAX
9 – Teste seu Web Service digitando um número para cada caixa de texto e
Página 175
Curso ASP.NET AJAX
10 – Agora que nosso Web Service já esta criado, volte para a página
pagina, caso não esteja adicione o mesmo utilizando a guia AJAX Extensions na
Toolbox.
Página 176
Curso ASP.NET AJAX
trabalho e tempo.
mostra a imagem:
Página 177
Curso ASP.NET AJAX
inserida na página como um bloco de script (se for True) ou através de uma
requisição separada (se for False). O valor False é o padrão. O valor False é
útil quando temos muitas referencias ao Web Service em uma mesma pagina e
pouca nas demais. No nosso exemplo não vamos alterar esta propriedade.
agora uma nova tag chamada Services com referencia para o Web Service como
mostra o código:
Página 178
Curso ASP.NET AJAX
<Services>
</Services>
</asp:ScriptManager>
Com você aprendeu no começo deste capitulo com o uso dos Web Services nós
do ASP.NET não são muito úteis nestas ocasiões e precisamos usar mais Javascript
e DOM.
Página 179
Curso ASP.NET AJAX
2 Input (Text)
1 Input (Button)
16 – Adicione também um controle Label que será usado apenas para apresentar o
resultado.
Página 180
Curso ASP.NET AJAX
Por não ser um Web Control este botão cria automaticamente uma função para
<!--
function Button1_onclick() {
// -->
</script>
para que o navegado possa fazer a chamada corretamente como mostra o seguinte
código:
Você poderia ter criado esta função sozinho e feito a referencia no botão mas o
verdade o Visual Studio 2005 não ajuda muito quando trabalhamos com código
Javascript, mas na próxima versão desta ferramenta teremos muitas novidades que
Página 181
Curso ASP.NET AJAX
<script type="text/javascript">
<!--
function Button1_onclick() {
var numero2 =
document.getElementById('Text2').value;
Calcular.Somar(numero1,numero2, QuandoCompleta);
document.getElementById('Label1').innerText = args;
// -->
</script>
Página 182
Curso ASP.NET AJAX
Página 183
Curso ASP.NET AJAX
funcionamento.
mostra o código:
var numero2 =
document.getElementById('Text2').value;
Página 184
Curso ASP.NET AJAX
Calcular.Somar(numero1,numero2, QuandoCompleta);
Perceba que para chamar o método Somar, usamos a classe Calcular que foi
uma referencia a uma outra função (a função QuandoCompleta) que vai receber o
valor retornado pelo Web Service. Então quando o quanto o Web Service retorna
mas você pode nomeá-lo como desejar. Você usa este parâmetro para recuperar o
document.getElementById('Label1').innerText = args;
Página 185
Curso ASP.NET AJAX
QuandoCompleta:
function QuantoErro(args) {
function QuandoTimeOut(args) {
mostra o código:
QuandoTimeOut);
Página 186
Curso ASP.NET AJAX
Em C#:
Página 187
Curso ASP.NET AJAX
do método Somar.
Esta mensagem foi exibida porque dentro do método QuantoErro esta o código:
Página 188
Curso ASP.NET AJAX
Você pode personalizar criando código Javascript que melhor se adapte a sua
aplicação.
de resposta.
APENDICE A
JAVASCRIPT
Para utilizar o JavaScript em uma página HTML, é usada a tag <script> e com o
<script type="text/javascript">
//códigos JavaScript
</script>
Página 189
Curso ASP.NET AJAX
Você pode inserir seu código javascript em três locais na página HTML, são elas:
<head>
</head>
Página 190
Curso ASP.NET AJAX
apenas um arquivo, você tem um local central para edição ou correção dos
códigos.
<head>
<script type="text/javascript">
//códigos JavaScript
</script>
</head>
Página 191
Curso ASP.NET AJAX
<body>
<script type="text/javascript">
//códigos JavaScript
</script>
</body>
A tag <noscript>
via script. Isso significa que dentro desta tag disponibilizamos conteúdo para o
Veja um exemplo:
<script type="text/javascript">
alert("Olá fulano.");
</script>
<noscript>
Página 192
Curso ASP.NET AJAX
<p>Olá fulano.</p>
</noscript>
No exemplo acima será exibida a mensagem "Olá fulano", através do alert() - uma
função do javascript que exibe uma mensagem através de um popup box - para
para quem não tem suporte ao javascript, porém através da tag <noscript> na
forma de texto.
Comentários em Javascript
javascript.
uma linha somente, enquanto o segundo suporta várias linha e é conhecido como
comentário de bloco.
Observe os exemplos:
<script type="text/javascript">
nossos códigos. */
</script>
Página 193
Curso ASP.NET AJAX
Ainda sobre comentários em Javascript observe que os browsers que não suportam
o Javascript irão exibi-lo como se fosse parte do conteúdo da página. Para prevenir
<head>
<script type="text/javascript">
<!--
//códigos JavaScript
//-->
</script>
</head>
Case Sensitive
vírgula) no final das suas declarações, mas seu uso não é obrigatório.
Página 194
Curso ASP.NET AJAX
em uma única linha sem eles será impossível determinar onde começa e termina
Variáveis
ou
nomeVariavel = "valorVariavel";
Você pode criar uma variável com ou sem a declaração var, mas é aconselhável
utilizá-la.
Quando criamos uma variável dentro de uma função, a tornamos local, ou seja,
acessível somente dentro da função em que foi criada. Já as variáveis globais, são
declaradas fora das funções e ficam acessíveis a toda e qualquer função na página
numeroFuncionario = 23;
Página 195
Curso ASP.NET AJAX
Entendemos pelo sinal de igual como recebe. Assim numeroFuncionario recebe 23.
Operadores
Operadores aritméticos
Representação em
Operador Exemplo
Javascript
a*b
por b.
a/b
b.
a%b
de a por b.
a+b
Adição +
Soma de a e b.
Subtração - a–b
Página 196
Curso ASP.NET AJAX
Subtração de a com b.
a ++
valor de a.
a --
do valor de a.
Operadores de relacionais
Representação em
Operador Exemplo
Javascript
a>b
é verdadeiro senão é
falso.
a >= b
expressão é verdadeiro
senão é falso.
a<b
Página 197
Curso ASP.NET AJAX
é verdadeiro senão é
falso.
a <= b
expressão é verdadeiro
senão é falso.
a == b
ao valor de b então o
Igual a ==
resultado dessa expressão
é verdadeiro senão é
falso.
a === b
Se o valor e o tipo de
expressão é verdadeiro,
senão é falso.
a != b
Se o valor de a for
diferente do valor de b
Diferente de !=
então o resultado dessa
expressão é verdadeiro
senão é falso.
Página 198
Curso ASP.NET AJAX
Operadores lógicos
Representação em
Operador Exemplo
Javascript
a == 5 && b > 9
resultado é verdadeiro,
senão é falso.
a == 5 || b > 9
Se o resultado de a for
Ou || então o resultado é
verdadeiro. O resultado
expressões retornarem
falso.
! a == 5
Se o resultado de a for
igual a 5 então o
Não !
resultado será falso, o
resultado da expressão.
Página 199
Curso ASP.NET AJAX
Operadores de atribuição
= x=y x=y
+= x+=y x=x+y
-= x-=y x=x-y
*= x*=y x=x*y
/= x/=y x=x/y
%= x%=Y x=x%y
Operador condicional
denominada nota com o valor 65. Em seguida, a variável resposta com um valor
Página 200
Curso ASP.NET AJAX
condicional, ou seja, se o valor da variável nota for maior ou igual a 60, teremos o
Estruturas de Controle
Estruturas de Decisão
Declaração if
Sintaxe:
if (condição) {
Exemplo:
Página 201
Curso ASP.NET AJAX
18. Como a condição é verdadeira, ou seja, a variável idade tem o valor 18, será
Declaração if...else
Sintaxe:
if (condição) {
} else {
Exemplo:
if(sexo == "masculino") {
alert("Homem!");
} else {
alert("Mulher!");
Como a condição é falsa, ou seja, a variável sexo não tem o valor masculino e
Página 202
Curso ASP.NET AJAX
Sintaxe:
if (condição) {
} else {
forem falsas.
Exemplo:
if(moeda == "Real") {
} else {
moeda tem o valor Real (a primeira). Caso verdadeiro exibiremos o texto Você
Página 203
Curso ASP.NET AJAX
Caso a variável não tenha nenhum dos dois valores - Real ou Dólar - exibirá o texto
Declaração switch
Sintaxe:
switch(expressão) {
case valor 1:
break
case valor 2:
break
default:
1 e valor 2;
Exemplo:
switch(estado) {
case "PR":
Página 204
Curso ASP.NET AJAX
break
case "SP":
break
case "SC":
break
default:
Temos a variável estado com o valor PR. Iniciamos nossa declaração condicional
variável for PR exibimos um texto, se for SP exibimos outro, e assim por diante; se
o valor da variável não coincidir com nenhum dos valores nos cases, exibimos um
Estruturas de Repetição
Página 205
Curso ASP.NET AJAX
Loop For
Sintaxe:
incremento) {
Exemplo:
var numero = 1;
loop for que funciona da seguinte maneira: temos o valor inicial (1) e o valor final
(10) para a variável numero, seguido de um incremento (++). Isso significa dizer
que o loop iniciará com a variável numero com o valor 1 e finalizará quando ela
alcançar um valor maior que 10. O código a ser executado será uma mensagem de
Loop while
Sintaxe:
Página 206
Curso ASP.NET AJAX
Exemplo:
var numero = 1;
numero = numero + 1;
Conforme você pode ver no exemplo do loop while o código é executado enquanto
Loop do...while
Sintaxe:
do {
Exemplo:
var numero = 1;
do {
numero = numero + 1;
Página 207
Curso ASP.NET AJAX
código. Por isso, mesmo que o valor da condição seja falso ele vai executar o
Break
if(numero == 17) {
break;
número 17. Quando isto ocorrer, utilizamos o comando break para interromper o
Continue
com o mesmo:
if(idade == 30) {
continue;
Página 208
Curso ASP.NET AJAX
No exemplo acima, o loop for deveria rodar do número 24 até o 34, porém o
Pop-up boxes
Alert
Exemplo:
Confirm
Exemplo:
Página 209
Curso ASP.NET AJAX
Prompt
Exemplo:
Página 210
Curso ASP.NET AJAX
Funções
notar que muito código digitado é igual, ou seja, que você precisa repetir código em
vários locais.
As funções auxiliam nisso, você pode criar funções e depois chamá-las em seu
Você pode chamar uma função de qualquer lugar da página ou até mesmo de
As funções podem conter parâmetros ou não, quando eles existem, são informados
function nomeDaFuncao() {
Exemplo:
function HelloWorld() {
alert("Olá mundo.");
Página 211
Curso ASP.NET AJAX
Função</a>
Exemplo:
function HelloWorld(nome) {
Função</a>
Esta mensagem pode ser personalizada uma vez que o parâmetro passado a ela é o
Quando queremos que uma função retorne algum valor, utilizamos à declaração
Exemplo:
function calculo(valor1,valor2) {
return total;
Página 212
Curso ASP.NET AJAX
alert(calculo(23,5));
valor1 (23) e valor2 (5). Nessa função temos a variável total que multiplica os
Eventos
realizado por uma página, uma ação do mouse, teclado, entre outros. Esses
eventos podem ser detectados pelo javascript e disparar código associado aos
mesmos.
Isso significa dizer que a função não será executada até que o evento ocorra.
Página 213
Curso ASP.NET AJAX
• onclick
O evento onclick ocorre quando o usuário clica sobre algum elemento da página,
Exemplo:
onclick="javascript:nomeDaFuncao(parametroSeHouver);"
• onload e onunload
O evento onload é executado quando uma página HTML é carregada por completa,
Exemplo:
• onmouseover e onmouseout
Exemplo:
onmouseover="funcaoParaMouseOver();"
onmouseout="funcaoParaMouseOut();"
Página 214
Curso ASP.NET AJAX
• onsubmit
de uma função e esta tem por objetivo validar os dados submetidos e retornar um
Exemplo:
onsubmit="return confereFormulario();"
O evento onclick também pode chamar uma função para validar um formulário,
Esses três eventos são utilizados na maioria das vezes em associação com algum
elemento de formulário.
Página 215
Curso ASP.NET AJAX
Exemplos:
onfocus="funcaoParaFocus();" onblur="funcaoParaBlur();"
Esses três eventos são utilizados em associação com o teclado. Com eles podemos
em seguida liberada.
Exemplos:
onkeydown="funcaoParaKeyDown();"
onkeypress="funcaoParaKeyPress();"
Arrays
variável. Dessa forma, seria uma variável com vários valores e esses valores são
Página 216
Curso ASP.NET AJAX
Como exemplo, imagine uma variável com o nome escalacaoBrasil. Para ela,
precisaremos armazenar onze valores, uma vez que o time tem onze jogadores.
Vamos a um exemplo.
Ambos os exemplos acima estão corretos. A diferença entre eles é que o segundo
informa o tamanho (valor total) que o Array terá através do número inteiro
(integer) 11 (onze).
Página 217
Curso ASP.NET AJAX
ao invés de string.
Método Descrição
Página 218
Curso ASP.NET AJAX
Data
Date()
Exemplo:
alert(dataAtual);
mes[0] = "Janeiro";
mes[1] = "Fevereiro";
mes[2] = "Março";
mes[3] = "Abril";
mes[4] = "Maio";
mes[5] = "Junho";
mes[6] = "Julho";
mes[7] = "Agosto";
mes[8] = "Setembro";
Página 219
Curso ASP.NET AJAX
mes[9] = "Outubro";
mes[10] = "Novembro";
mes[11] = "Dezembro";
data.getFullYear());
getMonth(), getFullYear().
O primeiro retorna o dia do mês (de 1 a 31), o segundo o mês (de 0 a 11) e o
O diferencial acima está na utilização do Array para o mês, uma vez que o método
Assim, utilizamos um Array para atribuirmos o nome do mês (pode ser algarismos
Método Descrição
Página 220
Curso ASP.NET AJAX
Os métodos acima precisam atuar em conjunto com o objeto Date() porque que
// Uma forma
new Date().nomeDoMetodo();
// Outra forma
data.nomeDoMetodo();
String
Página 221
Curso ASP.NET AJAX
utilizamos alguns dos métodos do objeto string na string literal, essa última é
string literal não é um objeto então não pode conter métodos, se fazendo
caracteres.");
caracteres.");
No exemplo acima, teremos o valor três nos dois casos (string literal – texto1;
Método Descrição
Página 222
Curso ASP.NET AJAX
Math
Valores matemáticos
Relação dos valores matemáticos que podem ser acessados pelo objeto Math.
Math.E E 2.718281828459045
Math.PI PI 3.141592653589793
Página 223
Curso ASP.NET AJAX
Relação dos valores matemáticos que podem ser acessados pelo objeto Math.
• ceil()
Arredonda o valor informado para cima até o número inteiro mais próximo.
Exemplo:
alert(Math.ceil(numero));
// Exibirá o valor 7.
• floor()
Arredonda o valor informado para baixo até número inteiro mais próximo.
Exemplo:
alert(Math.floor(numero));
// Exibirá o valor 6.
• max()
Página 224
Curso ASP.NET AJAX
alert(Math.max(numero1,numero2));
• min()
alert(Math.min(numero1,numero2));
• random()
alert(Math.random());
0.8335737463859384
alert(Math.random()*59);
58.92792655560298
• round()
Arredonda o valor informado para o número inteiro mais próximo, seja positivo ou
negativo.
Página 225
Curso ASP.NET AJAX
alert(Math.round(numero1));
// Exibirá o valor 7
alert(Math.round(numero2));
// Exibirá o valor -4
APENDICE B
DHTML e DOM
projetos.
e JavaScript.
navegadores atuais vêm utilizando esses padrões, mas ainda podem existir
exceções.
Página 226
Curso ASP.NET AJAX
definindo a forma como a estrutura que pode ser acessada por programas e scripts,
conteúdo.
body
ul h1
li li p p
As duas tags <li> são filhas do mesmo parent (pai). Então, a tag <ul> e <h1> são
siblings (irmãs).
A tag <p> está localizada dentro da tag <h1> assim, a tag <p> é filha dessa
child.
Página 227
Curso ASP.NET AJAX
Cada tag na marcação HTML representa uma linha e terá a mesma localização na
nova tecnologia suportada pela quarta geração (4.x) de seus browsers. Essa
da Microsoft e Netscape. Por isso, utilizaremos o DOM do W3C que tem o suporte
Exemplo de DHTML
JavaScript
<script type="text/javascript">
function modificarClasse(nomeClasse) {
obj.className = nomeClasse;
</script>
Página 228
Curso ASP.NET AJAX
HTML
<h1>Titulo</h1>
<p>Conteudo ...</p>
<a href="../../noscript.htm"
aparência</a>
</div>
CSS
#conteudo {
width: 500px;
padding: 15px;
line-height: 1.5em;
.destaque {
background-color: #666666;
.nodestaque {
background-color: #ffffff;
e o utiliza para adicionar ao objeto desejado conteudo uma nova classe CSS.
Página 229
Curso ASP.NET AJAX
Atenção: não podem existir dois objetos em uma página com o mesmo valor de um
atributo ID.
procederemos assim:
document.nomeDoFormulario.Telefone.value
document.getElementById('Telefone').value
Página 230
Curso ASP.NET AJAX
como retorno um único objeto, informarmos uma tag e temos todas aquelas que
function ModificarEstiloLink() {
link.style.textDecoration = 'underline';
textDecoration. Sempre que desejar utilizar uma propriedade CSS e esta conter a
Página 231
Curso ASP.NET AJAX
O método style como seu próprio nome já diz, é utilizado para alterar o estilo de
Exemplo:
function Ocultar(id) {
obj.style.display = "none";
de um objeto, só que este deve ser definido por uma classe CSS.
estilo na folha de estilo vinculada à página, ou seja, não precisamos alterar o script
Exemplo
function Ocultar(id) {
obj.className = "OcultarObj";
Página 232
Curso ASP.NET AJAX
getElementById. Então o código CSS que estiver nesta classe será usado a partir
.OcultarObj {
display: none;
.OcultarObj {
visibility: hidden;
O método innerHtml
Imaginemos uma tag <div> em sua marcação HTML e que essa tag esteja com o
Página 233
Curso ASP.NET AJAX
Exemplo:
document.getElementById("menu").appendChild(novoElemento);
Em primeiro lugar, definimos qual será o novo elemento ou a nova tag a ser criada,
Na segunda linha fizemos referência ao atributo ID de uma tag e essa será o pai do
Página 234
Curso ASP.NET AJAX
Para concluir, a tag hr foi adicionada como filho do elemento cujo atributo ID é
igual a menu.
já existente e o novo elemento deve ser inserido mediante algum evento ocorrido
function novaTag(nTag) {
novoElemento.appendChild(document.createTextNode("Teste"));
conteudo.appendChild(novoElemento);
Definimos qual será a nova tag a ser criada. Observe que essa informação é
document.createElement(nTag);
createTextNode.
Assim, esse novo elemento foi criado como um novo filho do elemento referenciado
na variável conteudo.
Página 235
Curso ASP.NET AJAX
local específico e não como o método appendChild que insere o objeto sempre
Exemplo:
<script type="text/javascript">
<!--
function inserirTag(nTag) {
novoElemento.appendChild(document.createTextNode("Título"));
parentTag.insertBefore(novoElemento, referencia);
//-->
</script>
elemento criado.
referencia.
Autor: Herbert Moroni Cavallari da Costa Gois
Site: www.juliobattisti.com.br
Este material não pode ser utilizado em Sala de Aulas e Para Ministrar Treinamentos!!!
Página 236
Curso ASP.NET AJAX
ou seja, o nosso elemento como referência e especificando que ele será um nó pai
(parentNode).
Marcação HTML:
<div id="menu">
<h1 id="tit">Titulo</h1>
</div>
Script utilizado:
<script type="text/javascript">
<!--
function inserirTag(nTag) {
novoElemento.appendChild(document.createTextNode("Conteúdo do
parentTag.insertBefore(novoElemento, referencia.nextSibling);
}
Autor: Herbert Moroni Cavallari da Costa Gois
Site: www.juliobattisti.com.br
Este material não pode ser utilizado em Sala de Aulas e Para Ministrar Treinamentos!!!
Página 237
Curso ASP.NET AJAX
//-->
</script>
elemento criado.
referencia.
seja, o nosso elemento como referência e especificando que ele será um nó pai
(parentNode).
diferença. Esses atributos informam que o novo elemento será o próximo irmão da
Se a nova tag será o próximo irmão, quer dizer que ela será inserida
elemento existente.
Página 238
Curso ASP.NET AJAX
setAttribute('nomeDoAtributo','valorDoAtributo');
Exemplo:
<script type="text/javascript">
<!--
function novaTag(nTag) {
novoElemento.appendChild(document.createTextNode("Conteúdo do
novoElemento.setAttribute('id','titulo');
novoElemento.setAttribute('class','destaque');
conteudo.appendChild(novoElemento);
//-->
</script>
Sintaxe:
getAttribute('nomeDoAtributo');
Exemplo:
<script type="text/javascript">
<!--
Página 239
Curso ASP.NET AJAX
function mostrarAtributo() {
alert(atributo);
//-->
</script>
APENDICE C
Express Edition
site:
http://msdn.microsoft.com/vstudio/express/vwd/download/
Neste mesmo site você encontra informações sobre os requisitos necessários para
instalar a aplicação.
A instalação é iniciada
Página 240
Curso ASP.NET AJAX
3 – Clique em Next.
Página 241
Curso ASP.NET AJAX
Página 242
Curso ASP.NET AJAX
6 – Clique em Next.
Página 243
Curso ASP.NET AJAX
Página 244
Curso ASP.NET AJAX
registro.
Página 245
Curso ASP.NET AJAX
8 – Clique em Exit.
Página 246