ASP.NET - Holde ViewState
- Forrige side WebForms Formular
- Næste side WebForms TextBox
Ved at holde objektets ViewState (visuelt tilstand) i en webformular, kan du undgå meget kodning.
Holde ViewState (visuelt tilstand)
Når en formular i classic ASP indsendes, nulstilles alle formulardataene. Forestil dig, at du indsender en formular med meget information, og serveren returnerer en fejl. Du skal returnere formularen og rette informationerne. Du klikker på tilbage-knappen, og hvad sker der... Alle formulardataene nulstilles, og du skal begynde alt fra bunden igen. Webstedet holder ikke din ViewState.
Når en formular i ASP.NET indsendes, genoprettes formularen sammen med alle formulardataene. Hvordan gør man det? Det skyldes, at ASP.NET holder din ViewState. ViewState indikerer tilstanden, når siden sendes til serveren. Ved at placere en skjult felt i en <form runat="server">-kontrol på hver side, kan vi definere sidens tilstand. Kildekoden kan se sådan ud:
<form name="_ctl0" method="post" action="page.aspx" id="_ctl0"> <input type="hidden" name="__VIEWSTATE" value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" /> .....nogle kode </form>
At holde ViewState er standardindstillingen for ASP.NET Web-formularer. Hvis du ikke ønsker at holde ViewState, skal du inkludere instruktionen øverst i .aspx-siden: <%@ Page EnableViewState="false" %> eller tilføj egenskaben: EnableViewState="false" til enhver kontrol.
Se nedenstående .aspx-fil. Den demonstrerer den gamle kørselsmetode. Når du klikker på submit-knappen, forsvinder formulardataene:
<html> <body> <form action="demo_classicasp.aspx" method="post"> Dit navn: <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>
Dette er den nye ASP .NET metode. Når du klikker på submit-knappen, forsvinder formularens værdier ikke:
<script runat="server"> Sub submit(sender As Object, e As EventArgs) lbl1.Text="Hello " & txt1.Text & "!" End Sub </script> <html> <body> <form runat="server"> Dit navn: <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>
Vis dette eksempel (Klik på ‘Vis originaldokument’ i rammen til højre, så kan du se, at ASP .NET har tilføjet en skjult felt til formularen for at bevare ViewState。)
- Forrige side WebForms Formular
- Næste side WebForms TextBox