Hola,
al hacer click en el boton, se produce un post, por lo que en esa recarga te tienes que asegurar que vuelves a crear el botón. A parte, he leido en algunos sitios que a los controles creados dinámicamente hay que asignarles un ID. También recordarte que los controles creados dinámicamente deben crearse en el evento PreInit de la página. Te paso el enlace a la msdn donde se explica.
http://msdn.microsoft.com/en-us/library/ms178472.aspx
---
Visita mi
Blog