^^^^ Exactly -- that will solve it completely. The reason why your code isn't working is that the page class, including all of the controls, are atomic to a single request. In order for values to persist, you need to use some sort of persistance mechanism. ViewState is what the .NET server controls use to maintain state.
When working with viewstate, you need to pay attention to when the 'Save Viewstate' and 'Load Viewstate' events fire. If you see some strange persistance problems pop up, it's probably because values are being set after viewstate is saved, or before viewstate is loaded. Here is a link to a good diagram:
http://www.eggheadcafe.com/articles/o_aspNet_Page_LifeCycle.jpg