This is one in a series of posts on using InfoPath. If you are new to SharePoint lists and InfoPath you might want to start with the Best Practices.
Best Practices for Cascading SharePoint Lists using InfoPath Forms
Use a SQL Server data source for an InfoPath pick list
Continuing with the same example I used in the Best Practices post, I’m going to make a change to an existing InfoPath form. Navigate to the SharePoint list called Supply Chain Scorecard Metrics and add a new item. In the Section drop down, notice that I’ve included the Goal as part of the Section description (Goals are Improve, Maintain and Track).
What I could do is have the user choose the goal, and then filter the Section list to show only those Sections which have that Goal. Here’s how we can do that.
ADD THE GOAL TO YOUR LIST
Navigate to your Supply Chain Scorecard Metrics list and in the List menu click on the List Settings. Add a column called Goal_ID with type of Number. Require that the column contains information. When the user selects a Goal we will store the Goal ID in the Metrics list, and then use that to filter the drop down list of available Sections the user can choose from.
ADD THE GOAL TO YOUR FORM
Navigate to your Supply Chain Scorecard Metrics list and in the List menu click on the Customize Form button to open up the InfoPath form.
Click OK and enter a password if necessary. Click Yes when it asks if you want to update the fields from the SharePoint list.
Add a row to your InfoPath form above Section by highlighting the Section row, right click and select Insert –> Rows Above.
From the Fields window, drag the Goal_ID field into the right hand cell in the row you just created.
Delete the label that says Goal_ID:, and type in Goal in the cell to the left of the Goal_ID textbox.
Right click on the Goal_ID text box and select Change Control –> Drop-Down List Box
Right click again and select Drop-Down List Box Properties.
Select Get choices from an external data source and then from the data source drop-down choose Supply Chain Scorecard Section.
Set Value = Goal_ID and Display name = Goal. Check the box that says Show only entries with unique display names. Click OK.
FILTER THE SECTION CHOICES BY THE GOAL SELECTED
Right click on the Section drop down list box and select Drop-Down List Box Properties.Beside the Entries box, click on the tree icon.
Click on the Filter Data button.
Click on the Add button.
Now we will specify on what to filter the Section list. In the first drop down select Goal ID. Leave the second drop down as “is equal to”. In the third drop down select “Select a field or group”
Change the data connection in the drop down to Main. Navigate to dataFields and then to Goal_ID.
Click all of the OK buttons. Publish your InfoPath form.
Add a new item. Select Improve as your Goal. Notice that the Section drop down has only those Sections that have a Goal of Improve.
And that is how you filter a drop down from another value in your list.
It worked but I want to create multiple cascading list based off of this one selection i.e. if I select a project that was entered in I should be able to select the project manager, project start date, project description etc. Based on the project selected.
Please let me know if this is possible.
Thanks,
Yes, that is possible. In the section of the post labeled FILTER THE SECTION CHOICES BY THE GOAL SELECTED, you can use the same filter (in your case maybe ProjectID) for each of the other data sources you are using for project manager, project start date, etc.
Cheers,
Martina
can we apply this using designer. since my requirements is to do with only in sharepoint designer.
i want to use filter like, we have to filter data from the another list, we have to show the drop down list to choose the value dynamically for each field, and we should retrive the matched list items in another list to show the result in the view, how can i acheive this. please help me.
Hi Kabeer,
Sorry I’m not familiar yet with SharePoint Designer. I did find this in the MS forums, if it helps you. http://social.msdn.microsoft.com/Forums/en-US/4507c36d-66ae-4542-b344-dea67befe4db/filtering-cascading-drop-down-lists?forum=sharepointcustomization
Cheers, Martina
hi.. I am new in sharepoint and we only have ms InfoPath. I have 3 dropdown list which is interconnected to each other.
Category Type (RAWMAT, LIQUID, PACK)
Category
Basket
Let’s say I selected RAWMAT, only category under RAWMAT should show in the category dropdown and whatever I select in Category only baskets on that particular category should show in the basket dropdown. Is it possible? please help.
I am trying to follow this but I am having a hard time as the criteria is different.
thanks a bunch.
Hi, take a look at this post. I describes cascading filtering in an Infopath form. http://thedataqueenblog.azurewebsites.net/2012/03/best-practices-for-cascading-sharepoint-lists-using-infopath-forms/
After checking out a handful of the blog posts on your
site, I honestly appreciate your technique of writing a blog.
I book-marked it to my bookmark site list and will be checking back in the near future.
Take a look at my website too and tell me what
you think.
Segera hubungi layanan Dewa Poker Agen Domino Daftar Poker Agen Judi
Poker On the internet ini untuk memperoleh pengalaman dan kemenangan yang selama
ini Anda diinginkan dari World-wide-web!
This process successfully created the cascading drop-down situation I needed…but the Design Checker is now showing the warning message “The filter expression is on external data and could not be validated. It may not be supported in Web Browser forms”. as well as a listing of the “Control sends data to server when value changes (primary cause)” under Browser Optimizations in the Design Checker pane.
The InfoPath form publishes successfully and works correctly on the SharePoint to submit to the list…I’m just not sure if I should be concerned about the warnings cause a problem at a later time.
Amazing! Thanks fօr this information!