Default data grids have a search option, other option is to use OQL to create dynamic reports.
We had a similar issue and solved it as follows:
When search is selected you can set the enum based on the selected search criteria and the corresponding datagrid will become visible. Refresh dataview and the visible datagrid will be refreshed also based on the new search criteria.
This solved the problem for us.