Viewstate is stored on its own page in encoded form. You cannot directly access a client-side view. You need to know the encoding / decoding algorithms in order to extract valuable data from this viewport in client code.
You can use a hidden variable to store data that will be used only on this page. Hidden variables are available on the client side and on the server side.
You can use a cache or session to store data (big data). They will have good performance compared to ViewState.
The cache always uses the deviceβs memory, the session uses the configured value:
In a web farm, a session can be local (which works only if there is a binding) or remote (state server or database or user), but the cache is always local.
So, storing a DataTable in a cache will consume memory, but will not use serialization.
PS: saving a DataSet instead of a DataTable will not change much.
Refer to cache implementation
source share