Viele Schwierigkeiten von Einsteigern bei der Erstellung eigener (Custom-)Controls ergeben sich aus der Unkenntnis des genauen Lebenszyklus eines solchen. Meist rühren die Probleme daher, dass bei einem PostBack der Zustand des Controls (samt seiner ChildControls) nicht 1:1 wieder hergestellt wird. Die Folge davon ist, dass beispielsweise die Event-Handler nicht mehr richtig zu den Controls zugeordnet werden können. (Dabei können erstaunliche, scheinbar mysteriöse Nebeneffekte auftreten, die, wenn sie den leidgeplagten Programmierer nicht zur Verzweiflung treiben würden, wirklich lustig wären. Beispielsweise wird statt des erwarteten, registrierten Event-Handler eines Controls auch schonmal der eines vollkommen anderen aufgerufen.)
Zu diesem Thema kann ich übrigens das Buch "ASP.NET Server Controls and Components" von Nikhil Kothari und Vandana Datye (erschienen im Microsoft-Verlag) emfpehlen. Darin ist auf ...