Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Put user code to initialize the page here If Not IsPostBack Then strTableName = "blah" ' for testing purposes strDatabaseName = "Blah,Blah" ' for testing purposes Call FillDBCombo() Call FillTableCombo() Else strTableName = ViewState("strTableName") strDatabaseName = ViewState("strDatabaseName") End If End Sub Sub Page_PreRender(ByVal Sender As Object, ByVal E As EventArgs) ViewState("strTableName") = strTableName ViewState("strDatabaseName") = strDatabaseName End SubHowever, when it does a postback, it resets the variables to empty strings. Any idea whay I'm missing here - or is there a better way to do this ?