📄 aspnet_viewstate.asp
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-US" xml:lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>ASP.NET The ViewState</title>
<link rel="shortcut icon" href="../favicon.ico" type="image/x-icon" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta name="Keywords" content="xml,tutorial,html,dhtml,css,xsl,xhtml,javascript,asp,ado,vbscript,dom,sql,colors,soap,php,authoring,programming,training,learning,beginner's guide,primer,lessons,school,howto,reference,examples,samples,source code,tags,demos,tips,links,FAQ,tag list,forms,frames,color table,w3c,cascading style sheets,active server pages,dynamic html,internet,database,development,Web building,Webmaster,html guide" />
<meta name="Description" content="Free HTML XHTML CSS JavaScript DHTML XML DOM XSL XSLT RSS AJAX ASP ADO PHP SQL tutorials, references, examples for web building." />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />
<link rel="stylesheet" type="text/css" href="../stdtheme.css" />
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "../../https@ssl./default.htm" : "../../www./default.htm");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-3855518-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
</head>
<body>
<a name="top"></a>
<table cellpadding="0" cellspacing="0" width="100%" bgcolor="#808080">
<tr>
<td width="234" valign="top">
<a href="../default.htm"><img src="../images/w3default80.jpg" border="0" alt="W3Schools" /></a>
</td>
<th valign="middle" align="left" class="right">
<iframe style="background-color:#808080" src="../banners/bannerframe.asp@adpartner=dundas" height="90" width="728"
marginwidth="0" marginheight="0" frameborder="0" scrolling="no">
Your browser does not support inline frames or is currently configured not to display inline frames.
</iframe>
<br /></th>
</tr>
</table>
<table style="margin-left:1px" width="800px" border="0" cellpadding="0" cellspacing="2">
<tr>
<td width="137" class="content" valign="top"><br />
<a class="left" href="../default.asp" target="_top">
<img src="../images/homeicon.gif" border="0" alt="home" /></a>
<a class="left" href="../default.asp" target="_top">
<b>HOME</b></a>
<br /><br />
<b>ASP.NET Tutorial</b>
<br />
<a class="left" target="_top" href="default.asp" >.NET HOME</a><br />
<a class="left" target="_top" href="aspnet_intro.asp" >.NET Intro</a><br />
<a class="left" target="_top" href="aspnet_vsasp.asp" >.NET vs ASP</a><br />
<a class="left" target="_top" href="aspnet_install.asp" >.NET Install</a><br />
<a class="left" target="_top" href="aspnet_pages.asp" >.NET Pages</a><br />
<a class="left" target="_top" href="aspnet_controls.asp" >.NET Controls</a><br />
<a class="left" target="_top" href="aspnet_events.asp" >.NET Events</a><br />
<br />
<b>ASP.NET Forms</b><br />
<a class="left" target="_top" href="aspnet_forms.asp" >.NET Forms</a><br />
<a class="left" target="_top" href="aspnet_viewstate.asp" style='font-weight:bold;'>.NET ViewState</a><br />
<a class="left" target="_top" href="aspnet_textbox.asp" >asp:TextBox</a><br />
<a class="left" target="_top" href="aspnet_button.asp" >asp:Button</a><br />
<br />
<b>ASP.NET Binding</b><br />
<a class="left" target="_top" href="aspnet_databinding.asp" >Data Binding</a><br />
<a class="left" target="_top" href="aspnet_arraylist.asp" >ArrayList</a><br />
<a class="left" target="_top" href="aspnet_hashtable.asp" >Hashtable</a><br />
<a class="left" target="_top" href="aspnet_sortedlist.asp" >SortedList</a><br />
<a class="left" target="_top" href="aspnet_xml.asp" >XML Files</a><br />
<a class="left" target="_top" href="aspnet_repeater.asp" >asp:Repeater</a><br />
<a class="left" target="_top" href="aspnet_datalist.asp" >asp:DataList</a><br />
<br />
<b>ASP.NET Database</b><br />
<a class="left" target="_top" href="aspnet_dbconnection.asp" >.NET DB Connection</a><br />
<br />
<b>ASP.NET 2.0</b><br />
<a class="left" target="_top" href="aspnet_newfeatures.asp" >2.0 New Features</a><br />
<a class="left" target="_top" href="aspnet_masterpages.asp" >2.0 Master Pages</a><br />
<a class="left" target="_top" href="aspnet_navigation.asp" >2.0 Navigation</a><br />
<br />
<b>References</b><br />
<a class="left" target="_top" href="aspnet_refhtmlcontrols.asp" >HTML Controls</a><br />
<a class="left" target="_top" href="aspnet_refwebcontrols.asp" >Web Controls</a><br />
<a class="left" target="_top" href="aspnet_refvalidationcontrols.asp" >Validation Controls</a><br />
<br />
<b>Examples</b><br />
<a class="left" target="_top" href="aspnet_examples.asp" >ASP.NET Examples</a><br />
<br />
<b>Selected Reading</b><br />
<a class="left" target="_top" href="../browsers/browsers_stats.asp">Web Statistics</a><br />
<a class="left" target="_top" href="../site/site_glossary.asp">Web Glossary</a><br />
<a class="left" target="_top" href="../hosting/default.asp">Web Hosting</a><br />
<a class="left" target="_top" href="../quality/default.asp">Web Quality</a><br /><br />
<a class="left" target="_top" href="../forum/default.asp">W3Schools Forum</a><br /><br />
<a class="left" target="_top" href="../about/about_helping.asp">Helping W3Schools</a><br /><br />
<script type="text/javascript"><!--
google_ad_client = "pub-3440800076797949";
/*LeftLinkUnit*/
google_ad_slot = "4854527104";
google_ad_width = 120;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="../../pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</td>
<td valign="top">
<table style="border: 1px solid gray" width="100%" bgcolor="#FFFFFF" border="0" cellpadding="5" cellspacing="0">
<tr>
<td>
<h1>ASP .NET Maintaining the ViewState</h1>
<a href="aspnet_forms.asp"><img alt="previous" border="0" src="../images/btn_previous.gif" /></a>
<a href="aspnet_textbox.asp"><img alt="next" border="0" src="../images/btn_next.gif" /></a>
<hr />
<p class="intro">You may save a lot of coding by maintaining the ViewState of
the objects in your Web Form.</p>
<hr />
<h2>Maintaining the ViewState</h2>
<p>
When a form is submitted in classic ASP, all form values are cleared. Suppose you
have submitted a form with a lot of information and the server comes back with an error.
You will have to go back to the form and correct the information. You click the
back button, and what happens.......ALL form values are CLEARED, and you will have to start all over
again! The site did not maintain your ViewState.</p>
<p>
When a form is submitted in ASP .NET, the form
reappears in the browser window together with all form values. How come? This is
because ASP .NET maintains your ViewState.
The ViewState indicates the status of the page when submitted to the server. The
status is defined through a hidden field placed on each page with a <form runat="server"> control. The source could look something like this:</p>
<table class="ex" border="1" width="100%">
<tr><td>
<pre><form name="_ctl0" method="post" action="page.aspx" id="_ctl0">
<input type="hidden" name="__VIEWSTATE"
value="dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=" /></pre>
<pre>.....some code</pre>
<pre></form></pre>
</td></tr>
</table>
<p>
Maintaining the ViewState is the default setting for ASP.NET Web Forms. If you
want to NOT
maintain the ViewState, include the directive <%@ Page EnableViewState="false" %> at the top of
an .aspx page or add the attribute EnableViewState="false" to any control.</p>
<p>
Look at the following .aspx file. It demonstrates the "old" way to do it. When
you click on the submit button, the form value will disappear: </p>
<table class="ex" border="1" width="100%">
<tr><td>
<pre><html>
<body></pre>
<pre><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
%></pre>
<pre></body>
</html></pre>
</td></tr>
</table>
<p><a target="_blank" href="showasp.asp@filename=demo_classicasp">Example</a></p>
<p>
Here is the new ASP .NET way. When you click on the submit button, the form
value will NOT disappear:</p>
<table class="ex" border="1" width="100%">
<tr><td>
<pre><script runat="server">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -