1) Your first task, Page output caching is pretty straight forward. If you know the concept you will be able to achieve it. Just Google. Or verify the below link you will get it.
Caching in ASP.NET[
^]
2) The second task is to have the values from all controls in cache.
Create a business object (i.e A class with properties corresponding to all these values), build the object of this class when ever required and add it to cache.
Use the cached object in the parent page or where ever required.