aloha jfrost

, i'll try to clear your questions :
1. System.Web.HttpServerUtility.Page.Server.Transfer(URL) just terminates the current processing and redirects to a new url.
-> that's right (the first page thread is aborted)
However, if he wanted that new page to get the info, he'd STILL have to pass in in the url string with the parameters attatched, meaning that when the page loads it would STILL have the information showing (which is what he wanted to avoid), correct?
-> there's two way to do this... first, you could just store it all in the query string, AND your querystring won't show up in the address bar... what's shown in your browser's address bar is your 1st page url, just try it

the second way, you could store your information in your first page as a properties as an example, then in the second page you could access your first page by using :
((1stpageclass)this.FindControl("yourfirstpage.aspx"

).YourProperty
anyway, i don't like the second way, it's much too confusing and just like you do, i don't like the page full of code, i prefer do the logic for searching using middle tier.
2. I agree with your second suggestion, however in csutton's first post, he stated that he was having trouble doing it that way and wanted other options. So, he could do your suggestion, BUT:
- a Request object still gets created, and his page 2 code will still have to use asp.net code that runs off the server to access the request items
-> a request object is ONLY created when the input type submit button is clicked. if you create the page full of server object, they're always created when the page is loaded, eventhough we don't use them all.
- he'll also need page code that will create more objects to carry out the db connection, execute the query, sort the results, and pass them back in a way that will display nicely. This will add alot of unnecesarry bulk to his page
-> we could reduce the complexities of the page code using two ways...
the first way... in your second page... you could just parse the request.params object and pass it on to the logic tier to do the searching and return the result as an arraylist or whatever... this way, your page will be clean too

the second way... you could just simply made the search module to be a web user control... then all the logic is handled by the user control... your 1st page simply attached your "search user control" if you want your page contain a search module. This way, every page you want to have a search module, simply attach the user control, then it's there
anyway, it's nice to have a response from you jfrost

... this forum is what i dreamt of

... full of responses

could i know your email? perhaps we could share knowledge, troubles (if you don't mind ^-^), etc