Tuesday, August 08, 2006

In the first article about optimizing rendered page size I have pointed out that you should consider using short names for content placeholders on your master pages because each control's id inside those placeholders is prefixed with the id of the placeholder. But when you look inside the page there is of course another field where you can make some improvements - the ViewState.

There are lot of articles about what you can do to make the ViewState smaller. Mainly - disable it everywhere where it isn't needed. This is a first step you can take. Amongst other things you can also use the SavePageStateToPersistenceMedium and LoadPageStateFromPersistenceMedium methods of the Page class. The purpose of those methods according to MSDN is to save and load any view state information from and to a page object. And that is true. But how to use those methods?

Browsing the results returned by google you can find plenty of solutions out there each unique in its way. Why they are different? The problem with those methods is not saving the state. To save the state you can use anything from the Session object, flat files or even database. The real problem is making sure that when a form is submited to a server, its ViewState is properly loaded - the concrete ViewState that was saved for that concrete page. A solution to just use Session["ViewState"] as a storage medium won't do, because then we can only have one ViewState for each user - no multiple windows/frames allowed.

My solution would be to include a hidden field on each page, name it somehow and use its value as a key for identifying which ViewState to load. Such a hidden field may be added dynamicaly in a base page so no additional work is required when adding new pages to a project. This field of course shoud hold some unique value (such as guid) in order to distinguish one page request from the other.

kick it on DotNetKicks.com

Thursday, November 23, 2006 11:02:03 AM (Central European Standard Time, UTC+01:00)
and how do you plan to override LoadPageStateFromPersistenceMedium method in ASP.NET 2.0 since it is marked as internal? You have no access to this method, it can be used only in 1.x framework.
sandy
Thursday, November 23, 2006 12:38:10 PM (Central European Standard Time, UTC+01:00)
Actually it is good you point that out. I wasn't aware of the fact that this method is internal, I just know for a fact that it works in ASP.NET 2.0. After your comment I have made a research and found: http://msdn2.microsoft.com/en-gb/library/41k1ad8b(vs.80).aspx
Tuesday, December 08, 2009 1:21:22 PM (Central European Standard Time, UTC+01:00)
Good morning. Our lives teach us who we are. Help me! There is an urgent need for sites: Online poker, i extended to, at habits, sit my television a early school when charging put out.. I found only this - [URL=http://www.comune.valbondione.bg.it/Members/OnlinePoker]online poker for beginners[/URL]. Online poker, technology generated: vb6, ms access windows media order. Online poker, tracker gambling, because they can not know the poker of companies profile suits under which hundreds and today things are on the betting of players. With best wishes :cool:, Pearlie from Britain.
Name
E-mail
Home page

Comment (Some html is allowed: a@href@title, strike) where the @ means "attribute." For example, you can use <a href="" title=""> or <blockquote cite="Scott">.  

Enter the code shown (prevents robots):

Live Comment Preview