Indeed, Nikhil K's blog is the place to search for information (since
he is the guy who invented the thing). But basically, imagine that
ViewState is simply a base64 encoded string storing the state of your
current form. This string is by default stored in a hidden input in
the page called "__VIEWSTATE" and in your HTML dump may look something
like:
input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/
wEPDwULLTEwbqZpA" />
After postback, the value is sent back to the server and state is
restored. This happens in the LoadViewState phase of the page, which
happens immediately after Init and before Load (Page_Load).
If you think this bloats the page, you have two options:
1) Disable ViewState altogether - however, you will need to invent
your own state persisting logic (typically, rebind everything upon
each request to the page)
2) Override the curiously called:
Page.LoadPageStateFromPersistenceMedium
Page.SavePageStateToPersistenceMedium
methods and store the ViewState in Session, Cache, etc, etc. This is
relatively hard to do, the following article has details:
http://www.codeproject.com/aspnet/PersistentStatePage.asp