A master page is not a singleton
Here's a misconception I see a lot on the forums lately.
There is this idea that controls on a master page should
always keep their state across content pages that use it.
When
you navigate away from a page (i.e. when you click a link),
you go to another page, with another instance of
the controls on it, so of course the new controls on the new
page have no way of knowing about the state of the controls
on the other page.
Having a master page does *not* mean
that all the controls on the master page have a unique
instance that would be shared by all pages that use this
master page. The master page is nothing more than a
template, it's not any kind of singleton.
So the only
way you can maintain the state across different pages
(whether you use a master or not) is by storing it in
Session and using that information when a new page is
loaded. This can have severe performance drawbacks as you
store state for each user but is more or less what WebParts
do with their personalization data...
Another approach
is to consider that if you need to maintain state across all
those pages, maybe they are the same and you need to move
from a many-page model to a single-page model.
Please
note that the navigation controls (a.k.a. Menu, TreeView,
SiteMapPath) will automatically select the current node in
the site map according to the URL you're on, giving a
minimum version of this application-level state management
some were expecting from master pages.