ASP.NET ViewStateは
ViewStateは(ビューステート)でWebフォーム内のオブジェクトを維持することによって、あなたは、コーディングを大幅に節約することができます。
ViewStateは(ビューステート)を維持
フォームが送信されたときに従来のASPでは、すべてのフォームの値がクリアされます。 あなたは多くの情報でフォームを送信し、サーバーがエラーを返したとします。 フォームの修正に戻ることがあります。 あなた戻る]ボタンをクリックし、次に何が起こったの......すべてのフォームの値がクリアされている、あなたはすべてを開始する必要があります! サイトでは、あなたのViewStateのを維持しません。
でASP .NET、フォームが送信されたときに、一緒にフォーム値を持つフォームがブラウザウィンドウにまとめて表示されます。 どのようにそれを行うには? ASP .NETは、あなたのViewStateを維持するためです。 ページには、その状態を示すときにViewStateがサーバーに送信されます。 この状態は、<フォームにrunat = "サーバー">隠しフィールド定義の配置を制御するとすべてのページにを通じてです。 次のようにソースコードは次のとおりです。
<input type="hidden" name="__VIEWSTATE"
value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" />
.....some code
</form>
ViewStateのを維持することは、ASP.NET Webフォームのデフォルト設定です。 あなたは、命令<%@ページEnableViewState = "false"に%>が含まれた.aspxページの上部に、ViewStateのを維持したい、または任意のコントロールにEnableViewState = "false"にプロパティを追加しない場合。
次の.aspxファイルを見てください。 それは "古い"動作モードを示しています。 あなたが送信ボタンをクリックすると、フォームの値が消えます。
例
<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>
デモ>>
ここで新しいASP .NETの方法です。 あなたが送信ボタンをクリックすると、フォームの値が消えることはありません。
例
ソースコードを表示するには、右側のフレームの一例をクリックして、あなたは、ASP .NETがViewStateのを維持するために、フォームの隠しフィールドを追加しました表示されます。
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>
デモ>>