What is the nature of the data you're trying to persist through PostBacks? What is it's scope? Do you know the value you want to persist before the user visits the page?
If the data is sensitive, you should avoid sending it to the client via ControlState or ViewState and if the scope of the persisted data needs to be available beyond a certain Control or Page, then you'd want to consider other mechanisms. If you know the value of the variable you're trying to persist before a visit to the page, then QueryString is another option.
Knowing that, if the data you're storing isn't sensative, it's not known until the user visits the page, and you will only use the information for a specific Page or Control, then ViewState or ControlState is probably the correct choice.
MCP, MCTS - .NET Framework 2.0 Web Applications