Derniers tutoriels de développement web
 

ASP.NET Web Forms - Le maintien de la ViewState


Vous pouvez économiser beaucoup de codage en maintenant le ViewState des objets dans votre formulaire Web.


Le maintien de la ViewState

Lorsqu'un formulaire est soumis en ASP classique, toutes les valeurs du formulaire sont effacées. Supposons que vous avez soumis un formulaire avec beaucoup d'informations et le serveur revient avec une erreur. Vous devrez revenir à la forme et corriger les informations. Vous cliquez sur le bouton de retour, et ce qui se passe ....... Toutes ces valeurs de formulaire sont affranchies et vous devrez tout recommencer! Le site n'a pas maintenu votre ViewState.

Lorsqu'un formulaire est soumis en ASP .NET, la forme réapparaît dans la fenêtre du navigateur ainsi que toutes les valeurs du formulaire. Comment venir? En effet, ASP .NET maintient votre ViewState. Le ViewState indique l'état de la page lorsqu'il est soumis au serveur. L'état est défini par un champ caché placé sur chaque page avec une balise <form runat = « server »> contrôle. La source pourrait ressembler à ceci:

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

.....some code

</form>

Le maintien de la ViewState est le paramètre par défaut pour ASP.NET Web Forms. Si vous voulez maintenir PAS le ViewState, inclure la directive <% @ Page EnableViewState = « false » %> en haut d'une page .aspx ou ajoutez l'attribut EnableViewState = « false » à aucun contrôle.

Regardez le fichier .aspx suivant. Il témoigne de la "old" façon de le faire. Lorsque vous cliquez sur le bouton Envoyer, la valeur de la forme disparaîtra:

Exemple

<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>
Afficher un exemple »

Voici la nouvelle façon ASP .NET. Lorsque vous cliquez sur le bouton Envoyer, la valeur de la forme ne disparaîtra pas:

Exemple

Cliquez sur Afficher la source dans le cadre de droite de l'exemple de voir que ASP .NET a ajouté un champ caché sous la forme de maintenir le 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>
Afficher un exemple »