I've looked into the Cache Substitution. However it will not work in this case. Cache Substitution is wonderful and works really well if all you are changing are stings of data. In this case I'm hiding and showing complex data with fields that bind data and code behind click events.
I've tried using Cache Substitution and rending the entire control to a string(https://coderwall.com/p/4ajzqq), however, click events and posts back no longer work when I do that.