Figure C. Count Your Controls.
ViewState is powerful, but it'll work only if your control names are exactly the same between postbacks. You break this requirement when you start adding and removing controls dynamically.