We all tend to think( I used to) that once we dynamically add a control to a page it will automatically be available from then onwards (forgive me if someone never been in this category). This misconception occurs because we look at the normal controls added in the .aspx page page and think once we added they were all automatically available in all the postbacks from then on with data,we didnt need to do a single thing, but what we dont realize is even those controls were recreated and assigned the posted back data during each post back. Even viewstate is sometimes expected to come to the rescue in case of dynamically adding controls :-), but only when we realize whats exactly happening behind the screen(page life cycle) and what viewstate is that we can laugh at what we used think. Refer to this
article it can help a lot.