Josh Heyse has just released a very cool extension to ASP.NET Dynamic Data which supports much fancier filtering than is available is the core Dynamic Data. The core idea is that filters can contribute arbitrary LINQ expression trees to the Select query performed by the data source. So for instance you can have a Range filter which checks that a column is between two values, or a Search filter which performs sub-string matching (e.g. StartsWith, EndsWith or Contains). All that is made available with very little effort from the user.
It's all available on CodePlex, so check it out! Start with the included AdventureWorks sample to get an idea what it's all about. Great job Josh!