Dynamic controls need to be created in the Init event of the Page, not the Load event.
Do not check for IsPostback as the control needs to be recreated each time the page is created so it exists when ViewState and Event information is loaded AFTER the Init event, but BEFORE the Load event.
see
http://www.4guysfromrolla.com/articles/092904-1.aspx[
^] for some more information.