ASP.Net is designed around the idea of pages posting back to themselves. You actually have to go out of your way to do otherwise.
The difficulty in your situation is if you want to modify those search parameters in the QueryString for each new search. ASP.Net wants to treat a URL with a different QueryString like a new request for the page instead of a postback to the same one (in which case it would preserve and rebuild the state of the page and the event to call server-side in hidden VIEWSTATE form variables), so it doesn't let you just modify the QueryString and postback. You have to instead go through the trouble of rebuilding the QueryString yourself and calling Response.Redirect().