Ciao,
L'evento non scatta perchè l'oggetto, l'handler e il metodo delegato all'evento devono tutti esistere dopo il postback.
Ergo: non ti basta creare una volta sola l'handler per l'evento, lo devi ricreare al postback successivo, in maniera tale che esista (durante l'esecuzione) e possa essere invocato.
Per questo "conviene" metterlo nella page_load.
Io di solito dichiaro gli oggetti dinamici e assegno l'handler nel page_load, per poi switcharli a visible=false se non mi servono.
Ciao,
b.