The MULTISELECT widget allows you to specify that the first column in a LIST should contain a check-box on each row and to allow several rows to be selected. A "Select All" feature can be enabled which displays a check-box in the column header. See ENABLE_SELECT_ALL_CHECKBOX for further details.
Each check box can represents multiple entities in the row. For each check box that is selected, the fields on that row will be compiled into a " | " delimited string and each row will be tab delimited and passed as a page parameter when a specific type of page link is activated.
The UIM document in The MULTISELECT Widget is an example of a page with multiple rows with check boxes. When the form is submitted, a single string, containing multiple fields for each selected row, is passed to the in$tabbedString field on the target page. Following the UIM is a detailed description of each relevant part of the UIM that implement this functionality.
<PAGE PAGE_ID="MultiSelectWidgetTest"
xsi:noNamespaceSchemaLocation="CuramUIMSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SERVER_INTERFACE NAME="DISPLAY" CLASS="MyBean"
OPERATION="Display" PHASE="DISPLAY"/>
<SERVER_INTERFACE NAME="ACTION" CLASS="MyBean"
OPERATION="Submit" PHASE="ACTION"/>
<LIST TITLE="List.Title">
<ACTION_SET BOTTOM="false">
<ACTION_CONTROL TYPE="SUBMIT">
<LINK PAGE_ID="MultiSelectWidgetResult">
<CONNECT>
<SOURCE NAME="ACTION"
PROPERTY="in$tabbedString"/>
<TARGET NAME="PAGE"
PROPERTY="referenceNumTabString"/>
</CONNECT>
</LINK>
</ACTION_CONTROL>
</ACTION_SET>
<CONTAINER LABEL="List.Multiselect.Header" WIDTH="5"
ALIGNMENT="CENTER">
<WIDGET TYPE="MULTISELECT"
HAS_CONFIRM_PAGE="true">
<WIDGET_PARAMETER NAME="MULTI_SELECT_SOURCE">
<CONNECT>
<SOURCE PROPERTY="personID" NAME="DISPLAY"/>
</CONNECT>
<CONNECT>
<SOURCE PROPERTY="caseID" NAME="DISPLAY"/>
</CONNECT>
</WIDGET_PARAMETER>
<WIDGET_PARAMETER NAME="MULTI_SELECT_TARGET">
<CONNECT>
<TARGET PROPERTY="in$tabbedString" NAME="ACTION"/>
</CONNECT>
</WIDGET_PARAMETER>
<WIDGET_PARAMETER NAME="MULTI_SELECT_INITIAL">
<CONNECT>
<SOURCE NAME="DISPLAY" PROPERTY="out$tabString"/>
</CONNECT>
</WIDGET_PARAMETER>
</WIDGET>
</CONTAINER>
<FIELD LABEL="Field.Title.ReferenceNumber" WIDTH="35">
<CONNECT>
<SOURCE NAME="DISPLAY" PROPERTY="personID"/>
</CONNECT>
</FIELD>
<FIELD LABEL="Field.Title.Forename" WIDTH="30">
<CONNECT>
<SOURCE NAME="DISPLAY" PROPERTY="firstName"/>
</CONNECT>
</FIELD>
<FIELD LABEL="Field.Title.Surname" WIDTH="30">
<CONNECT>
<SOURCE NAME="DISPLAY" PROPERTY="surname"/>
</CONNECT>
</FIELD>
</LIST>
</PAGE>
The main points to note in the above UIM example are:
Below is an example of the delimited string passed as a parameter to the specified page.
101|case121 102|case122 103|case123
Parameter Name |
Required |
Description and Connections |
|---|---|---|
MULTI_SELECT_SOURCE |
Yes |
This parameter can include multiple CONNECT elements that must specify a SOURCE end-point. The SOURCE end-point must be a list property containing the key data for the row. |
| MULTI_SELECT_TARGET | Yes |
This parameter must include one CONNECT element that must specify a TARGET end-point. The TARGET end-point must be a string property containing the key data for selected rows. |
| MULTI_SELECT_INITIAL | No |
This parameter must include one CONNECT element that must specify a SOURCE end-point. The SOURCE end-point must be a string property containing the key data for the rows that are initially check when page is loaded. |