ASP.NET - Maintenir le ViewState
- 上一页 Formulaire WebForms
- 下一页 TextBox WebForms
En maintenant le ViewState (état de vue) des objets dans les formulaires Web, vous pouvez économiser beaucoup de codage.
Maintenir le ViewState (état de vue)
Lorsque le formulaire classique ASP est soumis, toutes les valeurs du formulaire sont effacées. Imaginez que vous soumettez un formulaire avec beaucoup d'informations, et le serveur renvoie une erreur. Vous devrez retourner au formulaire et corriger les informations. Vous cliquez sur le bouton Retour, puis que se passe-t-il... Toutes les valeurs du formulaire sont effacées et vous devrez redémarrer tout à nouveau. Le site ne maintient pas votre ViewState.
Lorsque le formulaire est soumis dans ASP .NET, le formulaire réapparaît avec toutes les valeurs du formulaire. Comment cela est-il possible ? C'est dû au fait que ASP .NET maintient votre ViewState. Le ViewState indique l'état de la page lorsque celle-ci est soumise au serveur. En plaçant un champ caché dans un contrôle <form runat="server"> sur chaque page, nous pouvons définir l'état de la page. Le code source pourrait ressembler à cela :
<form name="_ctl0" method="post" action="page.aspx" id="_ctl0"> <input type="hidden" name="__VIEWSTATE" value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" /> .....du code </form>
Maintenir le ViewState est la configuration par défaut des formulaires Web ASP.NET. Si vous ne souhaitez pas maintenir le ViewState, incluez l'instruction suivante dans le haut de la page .aspx : <%@ Page EnableViewState="false" %> ou ajoutez l'attribut : EnableViewState="false" à tout contrôle.
Veuillez consulter le fichier .aspx suivant. Il démontre l'ancien mode de fonctionnement. Lorsque vous cliquez sur le bouton Soumettre, les valeurs du formulaire disparaissent :
<html> <body> <form action="demo_classicasp.aspx" method="post"> 您的名字: <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>
这是新的 ASP .NET 方法。当您点击提交按钮时,表单值不会消失:
<script runat="server"> Sub submit(sender As Object, e As EventArgs) lbl1.Text="Hello " & txt1.Text & "!" End Sub </script> <html> <body> <form runat="server"> 您的名字: <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>
显示这个例子 (请在右边的框架中点击“查看原文档”,您可以看到 ASP .NET 已经向表单中添加了一个隐藏字段,这样就可以维持 ViewState。)
- 上一页 Formulaire WebForms
- 下一页 TextBox WebForms