I just recently put together a fairly comprehensive set of search filters and I'm really happy with the result.
This post might point you in right direction. One note though, I'm not using a data view, just a paged query being displayed in a table.
The essence though is I use input fields and checkboxes, that on input or save, set the value of a number of variables that are connected to the server connect query as GET parameters.
Then it's just a matter of nesting the conditions properly in the query.