I had a website where I needed to fill a drop-down list with hundreds of entries, which caused the page to contain a lot of viewstate data. In my case, the list was pretty inexpensive to create (populate) as I was retrieving it directly from the cache. So I decided to disable view state for the list control and rebuild the list at the beginning of each postback. However, this as you probably know means the selection information is lost.
However, the user's choice is actually still maintained in the Request.Forms collection (a collection of posted values that's present for backward compatibility with ASP pages). You can look up the selected value using the runtime control name (stored in the UniqueID property), and you can use code such as the below to reset the proper selected index and retrieve the selected value: