État d'affichage des formulaires Web
ASP.NET Web Forms - Maintenir ViewState
En conservant le ViewState des objets dans votre formulaire Web, vous pouvez économiser beaucoup de travail de codage.
Maintenir ViewState
Dans ASP classique, lorsqu'un formulaire est soumis, toutes les valeurs du formulaire sont effacées. Disons que vous soumettez un formulaire contenant beaucoup d'informations et que le serveur renvoie une erreur. Vous devrez revenir au formulaire pour corriger les informations. Vous appuyez sur le bouton retour et que se passe-t-il... toutes les valeurs du formulaire sont effacées et vous devez tout recommencer ! Le site ne maintient pas votre ViewState.
Dans ASP .NET, lorsqu'un formulaire est soumis, le formulaire apparaît dans la fenêtre du navigateur avec les valeurs du formulaire. Comment? En effet, ASP .NET conserve votre ViewState. ViewState indique l'état de la page lorsqu'elle est soumise au serveur. Cet état est défini en plaçant un champ masqué sur chaque page avec un contrôle <form runat="server"> Le code source est le suivant :
<input type = "hidden" name="__VIEWSTATE"
value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" />
..... du code
</form>
Maintenir ViewState est le paramètre par défaut pour ASP.NET Web Forms. Si vous ne souhaitez pas conserver ViewState, incluez la directive <%@ Page EnableViewState="false" %> en haut de la page .aspx ou ajoutez la propriété EnableViewState="false" à n'importe quel contrôle.
Veuillez consulter le fichier .aspx ci-dessous. Cela démontre l’« ancienne » façon de fonctionner. Lorsque vous cliquez sur le bouton Soumettre, les valeurs du formulaire disparaîtront :
Instance
<!DOCTYPE html> <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>
Exécuter l'instance»
Cliquez sur le bouton « Exécuter » Exemple » pour afficher des exemples en ligne
Voici la nouvelle méthode ASP .NET. Lorsque vous cliquez sur le bouton Soumettre, les valeurs du formulaire ne disparaîtront pas :
Cliquez sur Afficher le code source dans le cadre droit de l'instance et vous verrez qu'ASP .NET a ajouté un champ caché à le formulaire pour maintenir ViewState.
Instance
<script runat="server"> Sub submit(sender As Object, e As EventArgs) lbl1.Text="Hello " & txt1.Text & "!" End Sub </script> <!DOCTYPE html> <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>
Exécuter l'instance»
Cliquez sur le bouton « Exécuter l'instance » pour afficher l'instance en ligne