You need to look at the page event lifecycle:
http://msdn.microsoft.com/en-us/library/ms178472.aspx[
^] - the Load event for teh page is called every time you past back, becuas eteh server does not maintin the page status after the HMTL has been sent to teh client: it is thrown away.
So, when you press a button on the page, a postback occurs, the page is loaded, the Load event occurs and then the button Click event.
In you Load event, you can use Page.IsPostBack to check if this is the first time, or in response to an action at the client end - so you don't overwrite what the user typed when he clicked the button! I'm guessing that your code is typed wrong in the example above...