You need to update your Page_Load
code to this:
If Not IsPostBack Then
GridView1.DataSource = f.xDa
GridView1.DataBind()
End If
By the time your code gets to the Button_Click
event, it has already repopulated the GridView with data from your database (overwriting what your user typed into the TextBox).
The code I've added above causes the data to be loaded only the first time - then the ASP.NET viewstate handles making sure the state of the GridView is kept up-to-date.