用后台代码来控制前台生成的VIEWSTATE,一般你的页面中数据量大,在页面前台生成一个VIEWSTATE就很大,例如:<input type="hidden" name="__VIEWSTATE" value="dasfasfkadusfiwe hfihlasdjfkdlashfjklhasdjfklhasdlkdfjasklhfkladhklhasdfhiuwefyworywuiryuqrq" />
那么你在提交的时候就很慢,如果在后台取读就好了,下面的方法就是,把前台生成的隐藏VIEWSATE消除,只是在后台保存,以下我是用SESSION保存的,当然SESSION有它自己的缺点,我就不说了,下面的方法只是一个参考.
如果.NET版本是1.0的话,你在前台要自己加<input type="hidden" name="__VIEWSTATE" value="" />,高版本的话,就用不着了.
HTML:
<HTML>
<HEAD>
<title>WebForm5</title>
<meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" content="Visual Basic .NET 7.1">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<input type =hidden name="hideViewstateID" value="<%=h%>">
<asp:Button id="Button1" style="Z-INDEX: 101; LEFT: 35px; POSITION: absolute; TOP: 90px" runat="server"
Text="Button"></asp:Button>
</form>
</body>
</HTML>
.VB:
Public h As String
Protected Overrides Function LoadPageStateFromPersistenceMedium() As Object
Dim str As String
str = Request.Form("hideViewstateID") & ""
Return Session(h)
End Function
Protected Overrides Sub SavePageStateToPersistenceMedium(ByVal viewState As Object)
If Not IsPostBack Then
h = Format(Now, "yyyyMMddff")
End If
Session(h) = viewState
End Sub