Lo que pasa es que al pulsar el botón de buscar automáticamente el la página se refresca pues se envía a el servidor.
Para solucionar esto puedes utiliza AJAX.
Otra forma es en el evento OnLoad de tu pagina meter la validación que indique si es refrescado de página y asignarle el valor de tu text que se guardaría en el viewestate al momento de pulsar el botón.
AL momento de pulsar tu botón sería lo siguiente:
ViewState.Add("valorBusqueda", txtBuscar.Text);
Finalmente en el evento OnLoad utilizas la siguiente condicional para re-asignar el valor
if(IsPostBack)
{
txtBuscar.Text = ViewState["valorBusqueda"].ToString();
}
Suerte