List filtering by date range

Setting up multiple date filters to filter a list by a date range is possible out of the box in Sharepoint 2010.

Using date filter web parts to send values to a lists parameters we can get the list to filter by a date range.

Setting this up is rather simple...

In your browser create a new page and add your populated list to it via the web parts options on the ribbons. For this example I'm just going to use my tasks list.

On the same page add a date filter webpart

date filter

From the arrow drop down that appears when you hover over the new date filter web part, select edit web part.

edit web part

 In the options pane that appears, change the Filter name to 'Start Date', and change the default value to 'offset from today : 30 days : Before today'. Then click ok.

date filter settings

 Underneath that,add another date filter and change its filter name to 'End date', and change the default value to 'offset from today : 0 days : After today'. Then click ok.

 date settings

Now save the page in your browser, then open the page up in sharepoint designer (SPD) -  in design view.

open page in sharepoint designer

 Once opened in SPD, click on the list web part to select it, then in the ribbon click on the list view tools > options > parameters icon.

parameters icon

 Add two new parameters, one called 'startdate' and another called 'enddate. Leave the parameter sources and default values as default and click ok when done. 

 new parameters

The parameters on the list allow us a point for our date filters to pass their values to. Now we need to set up the connections between the list and the date filters.

Right click on the start date filter and click add connection. In the dialog that popus up change the dropdown value to 'Send filter values to', click next.

send filter values to

Ensure that 'connect to a web part on this page' is selected in the next dialog and click next.

connect web part on this page

Change the target action in the next dialog to 'Get parameters from' and click next.

get parameters from

 In the next dialog, select 'Start Date' from the first box, and 'Startdate' from the second box and click next. Then click finish.

start dates match up

Go through the same process with the second date filter, but in the final step select 'End date' and 'Enddate' from the boxes.

end date match up

Now we have our date filters feeding the list with its values but we still have to set up the filter on the list.

Click the list web part to select it, then in the ribbon click on the list view tools > options > filters icon.

filters icon

The filter criteria box will popup. First add a rule 'Created > Greater than or equal to > [Start date]'.

filter rule

Then add another clause 'Created > Less than or equal to > [Enddate]'. Click ok.

created rule 2

Now save the page and open it back up in your browser.

It will by default show all tasks created in the last seven days thanks to the default setting of the start date filter. Changing these filter will filter the list according to the date ranges set.

list view data range

 

 

Now to make it all pretty you may want to add a nifty jQuery daterange picker

 

Comments   

 
Justin
#1 Justin 2012-05-11 07:15
When I do this on a publishing page I am forced to detach from the layout. Is there a way to apply the steps above without doing that.
Quote
 

Add comment


Security code
Refresh