Clique aqui para ler todos os artigos desta edição
DHTML com ASP.NET
por Dino Esposito
Este artigo discute |
Este artigo usa as seguintes tecnologias: |
· DHTML, processamento no cliente e servidor · JavaScript |
DHTML, JavaScript, C# Download: CuttingEdge0507.exe (131KB) |
Chapéu DTHML |
|
Neste artigo mostrarei como fazer com que o código ASP.NET e o Internet Explorer DHTML Document Object Model (DOM) trabalhem em conjunto, e discutiremos também como realizar a comunicação entre o runtime do ASP.NET e uma instância do server-side de um ASP.NET control .
Anatomia de um Postback
Para projetar um mecanismo efetivo de cooperação entre o DHTML e os controles server-side, precisamos ter um sólido entendimento do mecanismo ASP.NET postback. Imaginemos termos uma página com um par de textboxes e um botão Submit. Quando o usuário clicar no botão, a página faz um postback. O post pode ser iniciado em um de dois modos: via um botão Submit ou via script. Um botão Submit é representado pelo HTML: . A maioria dos browsers também suporta fazer o post via o método submit dentro de um elemento
Quando uma operação submit é iniciada, o browser prepara e envia um pedido de HTTP de acordo com os conteúdos do form. Em ASP.NET, o atributo "action" do form enviando é definido para a URL da página atual, o atributo "method" pode ser mudado à vontade inclusive programaticamente. Possíveis métodos incluem GET e POST.
O postback para uma página de ASP.NET que contenha um par de textboxes, uma lista dropdown e um botão Submit seria:
_VIEWSTATE=%D...%2D
&TextBox1=One
&TextBox2=Two
&DropDownList1=one
&Button1=Submit
Os conteúdos de todos os campos de entrada, incluindo os campos ocultos, são enviados como parte da carga útil. Além disso, o valor do item atualmente selecionado em toda a lista de controles é adicionado, assim como o nome do botão Submit que ativou o post. Se há um ou mais LinkButtons na página, dois campos ocultos extra chamados __EVENTTARGET e __EVENTARGUMENT são acrescentados à carga útil:
__EVENTTARGET=
&__EVENTARGUMENT=
&_VIEWSTATE=%D...%2D
&TextBox1=One
&TextBox2=Two
&DropDownList1=one
&Button1=Submit
Ambos os campos ocultos estarão vazios caso a página fizer o postback via botão Submit. Se fizermos o postback via LinkButton na página, a carga útil muda como mostrado a seguir:
__EVENTTARGET=LinkButton1
&__EVENTARGUMENT=
...