Hi Dale,
Session variables are a developer convenience but don't scale very well. I never use them unless its absolutely necessary which is hardly ever.
I'm not sure I understand what problem you are having.
"FileUpload Browse refreshes the page and my variable becomes null."
Browsing for a local file does not refresh the page. Are you talking about the user then clicks the upload button and posts back the page? Then perhaps after postback you are redirecting the page. You should surely still have your variable during postback. Why not just put the variable in the query string. After succesfull upload if you still need to have the current item selected you could response.Redirect("yourpage.aspx?yourvariableid=" + yourvariable);
Then read it from the query string to do the selection.
A similar problem and solution can be found in Admin/PageTree.aspx, where moving the page up or down the tree is a postback but I keep the page selected using a query string param and response.redirect.
Hope it helps,
Joe