Are you populating the form without doing it inside:
if (!IsPostBack)
{
}
Without the above construct (in the OnLoad event of the form or wherever it is you populate the form from) you will get the default state of the textbox when you click the button and postback to collect the form field values; presumably it is empty at that point.
Just a guess.