Atlanta Custom Software Development 

 
   Search        Code/Page
 

User Login
Email

Password

 

Forgot the Password?
Services
» Web Development
» Maintenance
» Data Integration/BI
» Information Management
Programming
  Database
Automation
OS/Networking
Graphics
Links
Tools
» Regular Expr Tester
» Free Tools

Improve performance with the EnableViewState property

Total Hit ( 2683)

Rate this article:     Poor     Excellent 

 Submit Your Question/Comment about this article

Rating


 


All Web Forms controls, and the page itself, expose the EnableViewState property, a boolean that says whether the current value of the control must be saved in the __VIEWSTATE hidden field and restored during a page postback.

By default this property is True, which means that a field's value is automatically preserved between postback. This makes a Web Forms behave more similarly to a windows forms. In some cases, however, you can set this property to False and reduce the number of bytes sent along the wire. A good candidate for this arrangement are password fields, which should be cleared any time the form is sent back to the client.

Another case where you may want to set this property to False is when you are building a databound DataGrid. Typically you bind a DataGrid with this code in the Page_Load event handler:

Click here to copy the following block
Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles _
  MyBase.Load
  If Not Me.IsPostBack() Then
    ' Create the DataReader
    Dim cn As New OleDbConnection("my connection string")
    Dim cmd As New OleDbCommand("SELECT * FROM MyTable", cn)
    Dim dr As OleDbDataReader = cmd.ExecuteReader()
    ' Bind it to the DataGrid
    DataGrid1.DataSource = dr
    DataGrid1.DataBind()
    ' close the DataReader and the Connection
    dr.Close
    cn.Clone
  End If
End Sub

The above code queries the database only once, and then restores the contents of the DataGrid from the __VIEWSTATE field, which means that a lot of data is sent to the client. In some cases you may find that rebinding the DataGrid at each page request might make your application more scalable (also because odds are that the data coming from the query are already in the database's cache):

Click here to copy the following block
Private Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles _
  MyBase.Load
  ' Create the DataReader
  Dim cn As New OleDbConnection("my connection string")
  Dim cmd As New OleDbCommand("SELECT * FROM MyTable", cn)
  Dim dr As OleDbDataReader = cmd.ExecuteReader()
  ' Bind it to the DataGrid
  DataGrid1.DataSource = dr
  DataGrid1.DataBind()
  ' close the DataReader and the Connection
  dr.Close
  cn.Clone
End Sub



Submitted By : Nayan Patel  (Member Since : 5/26/2004 12:23:06 PM)

Job Description : He is the moderator of this site and currently working as an independent consultant. He works with VB.net/ASP.net, SQL Server and other MS technologies. He is MCSD.net, MCDBA and MCSE. In his free time he likes to watch funny movies and doing oil painting.
View all (893) submissions by this author  (Birth Date : 7/14/1981 )


Home   |  Comment   |  Contact Us   |  Privacy Policy   |  Terms & Conditions   |  BlogsZappySys

© 2008 BinaryWorld LLC. All rights reserved.