#Region "Compactação de ViewState" Public Class MDViewState Inherits System.Web.UI.Page Private Function CompactarViewState(ByVal bytes As Byte()) As Byte() Dim Retorno As New System.IO.MemoryStream Dim gzip As New System.IO.Compression.GZipStream(Retorno, IO.Compression.CompressionMode.Compress, True) gzip.Write(bytes, 0, bytes.Length) gzip.Close() Return Retorno.ToArray End Function Private Function DescompactarViewState(ByVal bytes As Byte()) As Byte() Dim Entrada As New System.IO.MemoryStream Dim Retorno As New System.IO.MemoryStream Dim gzip As System.IO.Compression.GZipStream 'Retorno, IO.Compression.CompressionMode.Compress, True) Entrada.Write(bytes, 0, bytes.Length) Entrada.Position = 0 gzip = New System.IO.Compression.GZipStream(Entrada, IO.Compression.CompressionMode.Decompress, True) Dim buffer(64) As Byte Dim leitura As Int32 = -1 leitura = gzip.Read(buffer, 0, buffer.Length) While leitura > 0 Retorno.Write(buffer, 0, leitura) leitura = gzip.Read(buffer, 0, buffer.Length) End While gzip.Close() Return Retorno.ToArray End Function Protected Overrides Function LoadPageStateFromPersistenceMedium() As Object Dim vs As String = Request.Form("__VSTATE") Dim bytes() As Byte = Convert.FromBase64String(vs) Dim formatador As New LosFormatter bytes = DescompactarViewState(bytes) Return formatador.Deserialize(Convert.ToBase64String(bytes)) End Function Protected Overrides Sub SavePageStateToPersistenceMedium(ByVal state As Object) Dim vs As String = "" Dim formatador As New LosFormatter Dim escritor As New System.IO.StringWriter Dim bytes() As Byte formatador.Serialize(escritor, state) vs = escritor.ToString bytes = Convert.FromBase64String(vs) bytes = CompactarViewState(bytes) ClientScript.RegisterHiddenField("__VSTATE", Convert.ToBase64String(bytes)) End Sub End Class #End Region #Region "ViewState em Session" Public Class VSPage Inherits System.Web.UI.Page Protected Overrides Sub SavePageStateToPersistenceMedium(ByVal viewState As Object) Session("__VIEWSTATE") = viewState End Sub Protected Overrides Function LoadPageStateFromPersistenceMedium() As Object Return Session("__VIEWSTATE") End Function End Class #End Region