ASP.NET - Manter o ViewState
- Página Anterior Formulário WebForms
- Próxima Página TextBox WebForms
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>
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。)
- Página Anterior Formulário WebForms
- Próxima Página TextBox WebForms