|
|
|
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 ) |
|
|