Latest web development tutorials

ASP.NET ViewState

Mantenendo l'oggetto nel modulo Web nel ViewState (Visualizza stato), è possibile risparmiare un sacco di codifica.


Mantenere ViewState (Visualizza stato)

In ASP classico, quando viene inviato un modulo, tutti i valori del modulo vengono cancellati. Supponiamo che si invia un modulo con un sacco di informazioni, e il server restituisce un errore. Bisogna tornare alle correzioni di forma. Si fa clic sul pulsante Indietro, e poi cosa è successo ...... tutti i valori del modulo vengono cancellati, è necessario avviare tutto! Il sito non mantenere il ViewState.

ASP .NET in, quando viene inviato un modulo, il modulo insieme ai valori di forma appaiono insieme nella finestra del browser. Come fare? Questo perché ASP .NET mantiene la ViewState. ViewState sarà inviato al server quando la pagina indica il suo stato. Questo stato è attraverso su ogni pagina con un <form runat = "server"> controllare il posizionamento di una definizione campo nascosto. Il codice sorgente è il seguente:

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

.....some code

</form>

Mantenere il ViewState è l'impostazione predefinita per ASP.NET Web Forms. Se non si desidera mantenere il ViewState, in cima a aspx pagina che contiene le istruzioni <% @ Page EnableViewState =% "false">, o aggiungere le proprietà EnableViewState = "false" a qualsiasi controllo.

Guardate il seguente file aspx. Essa dimostra il "vecchio" modo di funzionamento. Quando si fa clic sul pulsante di invio, il valore modulo scomparirà:

Esempi

<html>
<body>

<form action="demo_classicasp.aspx" method="post">
Your name: <input type="text" name="fname" size="20">
<input type="submit" value="Submit">
</form>
<%
dim fname
fname=Request.Form("fname")
If fname<>"" Then
Response.Write("Hello " & fname & "!")
End If
%>

</body>
</html>

La dimostrazione >>

Ecco il nuovo modo ASP .NET. Quando si fa clic sul pulsante di invio, il valore modulo non scomparirà:

Esempi

Clicca sul esempio del frame di destra per visualizzare il codice sorgente, si vedrà l'ASP .NET ha aggiunto un campo nascosto nella forma per mantenere il ViewState.

<script runat="server">
Sub submit(sender As Object, e As EventArgs)
lbl1.Text="Hello " & txt1.Text & "!"
End Sub
</script>

<html>
<body>

<form runat="server">
Your name: <asp:TextBox id="txt1" runat="server" />
<asp:Button OnClick="submit" Text="Submit" runat="server" />
<p><asp:Label id="lbl1" runat="server" /></p>
</form>

</body>
</html>

La dimostrazione >>