May I recommend the book: "Developing ASP.NET Server Controls and Components" from Microsoft Press?
Several comments to your class:
1. Avoid using a name as plain as cExtendedLiteral to handle something this specific.
2. The goal of a Literal control is to let you create HTML and assign it to the Text property. You should override the OnPreRender method to assign the property. CustomControls should have any user assigned properties "finalized" in OnPreRender. Its after the user's code edits properties (like your PostStartDate) but before its output (in the Render method).
3. You have selected attaching the event Page_PreRender. Instead of this, override OnPreRender. The event is meant for users to hook up their code. You get the OnPreRender method to handle internal code. Don't forget to call MyBase.OnPreRender() from your method.
4. If you change visibility, do it before calling MyBase.OnPreRender. This is a very special case of custom controls since Visible determines if the PreRender and Render phases run.
--- Peter Blum
Creator of Professional Validation And More Suite, Peter's Date Package, and Peter's Polling Package
www.PeterBlum.com