The Text Filter Web Part – Without Having To Filter Exact Text
This applies to both SharePoint 2007 and 2010. In MOSS Enterprise, and the 2010 version of Enterprise.
UPDATE (3/14/16): If you are using SharePoint 2013 or SharePoint Online with Office 365, enterprise, you don’t need this solution. This functionality is now built into every single list and library, with a cute little “Find” box at the top.
There is an out-of-box web part called the Text Filter Web Part. Basically, when you put this web part on a page, and put a list or library web part on the same page, you then create a web part connection that sends the text typed in the box as a filter to one of the columns in the web part, like this:
The name Molly Clark had to be typed in exactly. So, if you typed “Molly”, this record would not come up.
People use the text filter web part when they just want to search a single column in a list or library. Otherwise, you’d simply use the “Search” box at the top of the screen, choose “This List” or “This Site” and perform SharePoint searches that way.
One more note before I get into today’s solution:
If you’re making use of site columns in your lists, there’s a setting where you can specifically select which columns you do NOT want to be searchable on the site. In Site Settings, click Searchable Columns. Put check boxes in the NoCrawl column for the ones that shouldn’t be searchable.
Here’s how to set up the text filter so that any partial word searches will work
One problem: with this solution, I don’t think there’s a way to make the list automatically display all items by default before doing your filter.
So again, this involves a data view web part… and that “parameters” concept that I keep raving about.
- Go to a web part page, open it up in SharePoint Designer, and insert a text filter web part and a data view web part of any list or library.
- Click to select your list web part, click the Data View menu, and choose Parameters.
- Create a new parameter. In the name column, it doesn’t matter what it’s called, let’s just call it FilterParam. In the Parameter Source drop-down box, choose Query String.
The Query String Variable needs to be the exact name of the column that you’d like to filter.
- Click the Data View menu, and choose Filter.
The Field Name needs to be the name of the column you’re going to filter, and HERE’S THE TRICK: Form the Comparison, choose CONTAINS. For the Value, choose the name of the parameter that you created at step 3. Click OK.
- Right click on the Text Filter Web Part, and choose Web Part Properties.
- The Filter Name box is required. Make something up. If it’s going to be used to search the title field, you might want to call it something intuitive like “Search Title”. There’s also a box in the Advanced Filter Options, to control the width in pixels. Type in a width if you wouldn’t like the web part stretching across the entire page. Click OK.
- Right click on the text filter web part, and choose Web Part Connections.
- Choose Send Filter Values to. Click Next.
- Connect to a web part on this page. Click Next.
- Target web part: choose the name of your list. This part is important: The target action needs to be Get Parameters From. Click Next.
- Click the name of the text filter on the left, and the name of your new parameter on the right. Click Next.
- Click Finish and save the web part page.
Try it out. In the text filter, you can type any part of any word and hit enter. It doesn’t take Boolean expressions or anything fancy like that, but it’s much more useful than having to type the text exactly. Again, this is a solution that I just whipped up today, and can’t tell if there’s any way to make the web part show all items until you want to filter it. Nothing obvious. I guess if you need to have the whole list displayed, you can just insert a third web part on the page, as a full view of the list.