Najnowsze tutoriale tworzenie stron internetowych
 

ASP.NET Web Forms - Utrzymanie ViewState


można zaoszczędzić dużo kodowania utrzymując ViewState obiektów w formularzu internetowym.


Utrzymanie ViewState

Gdy formularz jest składany w klasycznym ASP, wszystkie wartości formularza są wyczyszczone. Załóżmy, że złożyły formularz z wielu informacji, a serwer wraca z błędem. Trzeba będzie wrócić do formy i popraw je. Kliknięcie przycisku Wstecz, a co się dzieje ....... Wszystkie wartości formularza są wyczyszczone, a będziesz musiał zacząć wszystko od nowa! Witryna nie utrzymać ViewState.

Gdy formularz jest składany w ASP .NET, forma pojawia się w oknie przeglądarki wraz ze wszystkimi wartościami formularza. Dlaczego? To dlatego, ASP .NET utrzymuje swoją ViewState. Elementu ViewState wskazuje status strony, gdy wysyłane do serwera. Status jest określony przez ukrytym polu umieszczonym na każdej stronie z <form runat = „server”> sterowania. Źródłem może wyglądać mniej więcej tak:

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

.....some code

</form>

jest ustawieniem domyślnym dla ASP.NET Web Forms zachowaniu ViewState. Jeśli chcesz zachować ViewState NIE obejmują dyrektywę <% @ Page EnableViewState = „false”%> na górze strony .aspx lub dodać atrybut EnableViewState = „false” żadnej kontroli.

Spójrz na poniższy plik .aspx. To świadczy o "old" sposób to zrobić. Po kliknięciu na przycisk złożenia wartość forma zniknie:

Przykład

<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>
Pokaż przykład »

Oto nowy ASP .NET sposób. Po kliknięciu na przycisk złożenia wartość postać nie znikną:

Przykład

Kliknij View Source w prawej ramce przykład, aby zobaczyć, że ASP .NET dodał ukryte pole w formularzu, aby utrzymać 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>
Pokaż przykład »