Вы полностью переопределяете поведение свойства Text, хотя оно может не отображаться так, как оно было задумано. Что вы действительно хотите сделать, так это переопределить метод Render:
protected override void Render(HtmlTextWriter writer)
{
if (string.IsNullOrEmpty(base.Text))
{
Text = (this.DefaultText ?? string.Empty);
}
base.Render(writer);
}
Это обрезание перед тем, как элемент управления отображает текст. Это происходит так поздно в жизненном цикле элемента управления, что даже не будет сохранено во ViewState, чтобы сохранить вздутие живота!