While InfoPath does not include a multi-select list box control, it is possible to create one using the controls present in InfoPath SP1 Preview:
Like all form design decisions in InfoPath, the first thing you need to do is think about the data you want to collect – how do you want the multiple selections represented in the XML saved or submitted by the InfoPath form? Additionally, do you want the selections to be determined at form design time (static), or at runtime (dynamic)?
Here’s one approach that allows either a static or dynamic list of choices by including the choices – and the selection state – right in the form data.
First, create a data structure as follows:
Here are the steps to do this:
Note that if you want a very different data structure the rest of these instructions won’t apply directly, but they should get you started down the right path in terms of understanding how to create a complex control out of the primitives that InfoPath provides.
Now you need to build the view – here’s what I came up with, showing the design-time structure:
This is a Scrolling Region as the outer container for the control, containing a Repeating Table for the options, with a Check Box and Expression Box for each option. Here’s how you make it:
Next, tweak the layout and borders to make it look professional:
Finally, if you want to make the selected options stand out clearly, you can use Conditional Formatting:
At this point, the Multi-Select List Box control is ready to go – but it doesn’t have any options! Maybe those options are specified by your form’s back end data source (a database or web service). But for now, let’s assume the list is static:
That’s it! Now just hit the Preview button on the toolbar to try our your new Multi-Select List Box control.
Note: You can also create ActiveX controls that do XML data binding with the InfoPath SP1 Preview.
Hi
I would like to know how we can add new rows dynamically. The "option" group above has two nodes: Selected and Text. How can I add more "option" groups programmatically? I created the multi select list box as explained in the example above but now i want to populate it with data retrieved from the database. How can I do that?
Thanks in advance
Daska
Multi select list box that comes with InfoPath 2007 does not work in web forms so you have to create
PingBack from http://www.bloggerloser.com/populating-multiselect-list-box-in-infopath-2007-web-forms-programmatically/
PingBack from http://www.keyongtech.com/1238956-how-can-you-set-up
Hi Team:
We are having Info Path Form 2007, But i am not able to find the contol "Scrolling Region" either in the controls or going through Insert > More Controls.
Regards,
Mukesh Giri
Hi Mukesh,
If the compatibility for your XSN is set to both InfoPath and Forms Services, then the Scrolling Region control is not available. When set to Forms Services, there are a number of controls that are not available:
http://office.microsoft.com/en-us/infopath/HA102040851033.aspx
Scott
How do I get a multiple select list box that is retreiving the values from sharepoint to show the selected values in a sharepoint forms library when the end users submits the form. All other fields that are NOT multiple selection boxes appear in there column with the values selected. This is NOT a web based form.
Hi There,
I'm having the same problem as Legun. I am using infopath 2003 and have created the multi-select as shown above (my selections are static).
Now, I need to submit the form to a form library in sharepoint, but I cannot get the selected values to appear in a column within the library.
This is very important as I need to filter on this column once it's in sharepoint.
I've tried everything and can't get it working...I'm afraid my company will soon give up on infopath and go back to excel for creating forms....!
Does anyone have any ideas?
I forgot to ask...
Is there anyway to make this multi-select show static values AND allow users to add a value. The multi-select in 2007 appears to offer this feature.
Thanks
Is there a way to load the control from a xml resource file? Any info you can provide will be helpful.
does this work for browser enabled forms?