Ultimele tutoriale de dezvoltare web
 

ASP.NET Formulare Web - Menținerea Viewstate


Puteți salva o mulțime de codificare prin menținerea Viewstate a obiectelor din formular Web.


Menținerea Viewstate

Atunci când un formular este prezentat în ASP clasic, toate valorile de formular sunt șterse. Să presupunem că ați trimis un formular cu o mulțime de informații și serverul revine cu o eroare. Va trebui să se întoarcă la forma și corectați informațiile. Faceți clic pe butonul din spate, și ce se întâmplă ....... Toate valorile formă sunt eliminate, și va trebui să înceapă peste tot din nou! Site-ul nu a menținut Viewstate dumneavoastră.

Atunci când un formular este prezentat în ASP .NET, formularul apare din nou în fereastra browser-ului, împreună cu toate valorile din formular. Cum se face? Acest lucru se datorează faptului că ASP .NET menține Viewstate dumneavoastră. Viewstate indică starea paginii atunci când este supusă la server. Statutul este definit printr-un câmp ascuns plasat pe fiecare pagină cu un <form runat = „server“> control. Sursa ar putea arata ceva de genul:

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

.....some code

</form>

Menținerea Viewstate setarea implicită pentru ASP.NET Web Forms este. Dacă doriți să nu mențină Viewstate, să includă directiva <% @ Page EnableViewState = „false“%> din partea de sus a unei pagini aspx sau adăugați atributul EnableViewState = „false“ la orice control.

Uită-te la următorul fișier aspx. Aceasta demonstrează "old" mod de a face acest lucru. Când faceți clic pe butonul de trimitere, valoarea formular va dispărea:

Exemplu

<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>
Arată exemplu »

Aici este noul mod ASP .NET. Când faceți clic pe butonul de trimitere, valoarea formular nu va dispărea:

Exemplu

Faceți clic pe sursa de vedere în cadrul din dreapta al exemplu pentru a vedea că ASP .NET a adăugat un câmp ascuns în formă pentru a menține 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>
Arată exemplu »