You could have another datatable and when the Search Text changes, copy the matching rows from the original to the shown datatable (or just unhook the DGV from the original dt and manually fill it each time.
Or set unmatched rows to visible=false in the DGV, if that's possible.