ASP.NET - Manter o ViewState

Ao manter o ViewState (estado de visualização) de objetos em formulários web, você pode economizar muita codificação.

Manter o ViewState (estado de visualização)

Quando um formulário do classic ASP é submetido, todos os valores do formulário são apagados. Imagine que você submeteu um formulário com uma grande quantidade de informações e o servidor retornou um erro. Você terá que retornar ao formulário e corrigir as informações. Você clica no botão Voltar, e o que acontece?... Todos os valores do formulário são apagados e você terá que começar tudo de novo. O site não mantém seu ViewState.

Quando um formulário do ASP.NET é submetido, o formulário reaparece com todos os valores do formulário. Como isso é feito? Isso é devido ao ASP.NET manter seu ViewState. O ViewState indica o estado da página quando esta é submetida ao servidor. Colocando um campo oculto em um controle <form runat="server"> em cada página, podemos definir o estado da página. O código-fonte pode ser semelhante a este:

<form name="_ctl0" method="post" action="page.aspx" id="_ctl0">
<input type="hidden" name="__VIEWSTATE" />
value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" />
.....algum código
</form>

Manter o ViewState é a configuração padrão do ASP.NET Web Form. Se você não desejar manter o ViewState, inclua a instrução no topo da página .aspx: <%@ Page EnableViewState="false" %> ou adicione a propriedade: EnableViewState="false" a qualquer controle.

Por favor, veja o arquivo .aspx abaixo. Ele demonstra o modo de execução antigo. Quando você clicar no botão Enviar, os valores do formulário desaparecerão:

<html>
<body>
<form action="demo_classicasp.aspx" method="post">
Seu nome: <input type="text" name="fname" size="20">
<input type="submit" value="Enviar">
</form>
<%
dim fname
fname=Request.Form("fname")
Se fname<>"" Then
Response.Write("Olá " & fname & "!")
Fim Se
%>
</body>
</html>

Exibir Este Exemplo

Este é o novo método ASP .NET. Quando você clicar no botão enviar, os valores do formulário não desaparecerão:

<script runat="server">
Sub submit(sender As Object, e As EventArgs)
lbl1.Text="Olá " & txt1.Text & "!"
Fim Sub
</script>
<html>
<body>
<form runat="server">
Seu nome: <asp:TextBox id="txt1" runat="server" />
<asp:Button OnClick="submit" Text="Enviar" runat="server" />
<p><asp:Label id="lbl1" runat="server" /></p>
</form>
</body>
</html>

Exibir Este Exemplo (Clique em “Ver Documento Original” na caixa à direita, onde você pode ver que o ASP .NET adicionou um campo oculto ao formulário, mantendo assim o ViewState。)