It appears that the PreRender event on a System.Web.UI.Control object is the last place you can make anychanges to a control's contents and have it persisted to the viewstate when the page is rendered.