Regarding jQuery, i saw a comment you made somewhere about "too bad about INamingContainer"
As a die hard jQuery/ASP.NET person myself, i highly recommend grabbing "Wilco Web Controls" (http://www.wilcob.com/Wilco/Toolbox/WilcoWeb.aspx) and using the IDOverride functionality, which will keep a control's ID to what is specified in your code