Choice Group

Overview

A choice group offers values from a provided value list and returns the selected values as a carriage return-separated string to the dataprovider attached. When the value list offers display and return values, the return values are returned.

Note that if your value list does not have the "Allow empty value" check set, a user won't be able to remove the last selected value anymore.

The choice group component can be used in two modes: single select (either/or, aka radio button) or multi select. That mode can be controlled via the inputType property.

To see a live sample of the component you can go here.

Get Started

Add a Choice Group to a form

In the Form Editor, drag the Choice Group component from the Pallet onto the form, then select a dataprovider and a valuelist.

If the component does not appear in the pallet, it means you do not have the Bootstrap Components package installed. Click "Get more components" at the top of the pallet to open the Servoy Package Manager and install it.

Modifying a Choice Group at Design-Time

Choice Groups, like all components, have properties that can be modified at design time to set the appearance and behavior of the component. Select the label in the Form Editor to see a list of properties in the Component Properties Editor. Below are some common properties and how to set them at design time.

See the reference docs for Choice Group for a complete list of its properties.

Setting the data-provider

Choice Group's dataprovider can be set after the component has been added to the form or by setting it in dataprovider property, found in the Component Properties Editor.

Setting the input type

Choice Group's input type can be set in inputType property, found in the Component Properties Editor. It can be single select (either/or, aka radio button) or multi select.

IMPORTANT! When the Choice Group inputType property is set to checkbox, then dataprovider property must be a variable that can contain multiples values, such as form or scope variable. Example:

/**
 * @type {String}
 *
 * @properties={typeid:35,uuid:"FA8EF7B3-5A1C-43E6-A5A3-36E99197E38F"}
 */
var choice;

dataprovider is set as choice

Setting the valuelist

Choice Group's valuelist can be set it in valuelist property, found in the Component Properties Editor and it should match the set dataprovider.

Example:

In order to get a drop down menu with orders' ship countries, the followings settings should be made:

  1. set the Choice Group dataprovider:

    • if inputType is radio, then dataprovider can be either a table column (shipcountry) or another type of dataprovider

    • if inputType is checkbox, then dataprovider must be a variable that can contain multiples values, such as form or scope variable

  2. in case it doesn't exist, create a valuelist using Table values and shipcountry column as dataprovider

  3. set the countries list in valuelist property of the Choice Group

Handling Click Events

Like most components, Choice Groups have events, which allow you to execute some logic when something happens in the UI. Of course, the most common event for a Choice Group is the onDataChange event, which is triggered when the component is clicked and the value is changed.

To Handle the event, double-click the value for the onDataChange property in the Properties Editor. You will see the Method Selection Wizard. You'll have the option to select an existing Method or create a new Method. The method will be called when the Choice Group's onDataChange event is fired and the Event object will be passed to it.

/**
 *
 * @param oldValue
 * @param newValue
 * @param {JSEvent} event
 *
 * @return {Boolean}
 *
 * @private
 *
 * @properties={typeid:24,uuid:"D2499C52-AC5E-4C9E-9B51-1415F0E83D04"}
 */
function onDataChange(oldValue, newValue, event) {
    //show and hide another page element according to the selected value(s)
	if(newValue.includes('USA')){
	    elements.info_usa.visible = true;
	}else {elements.info_usa.visible = false;}
	return true;
}

See the Choice Group reference for a comprehensive list of all events

Modifying a Choice Group at Runtime

Choice Groups, like many components, can be modified at runtime through code. Below are a few examples of controlling a Choice Group from code.

Enabling / Disabling a Choice Group

You can easily change the enabled state of a Choice Group at runtime.

Example:

function disableChoiceGroup(){
	elements.myChoiceGroup.enabled = false;
}

Hiding/Showing a Choice Group

You can easily change the visible state of a Choice Group at runtime.

Example:

function hideChoiceGroup(){
	elements.myChoiceGroup.visible = false;
}

Calling Choice Group API Methods

Like most components, a Choice Group has API methods which can be called from code. Below is an example of common API calls.

Add CSS Style Class

You can easily add a style class to a Choice Group using the addStyleClass method.

Example:

function AddStyleClassChoiceGroup(){
	elements.myChoiceGroup.addStyleClass('mycssclass');
}

See the Choice Group reference for a complete list of programmable properties and methods.

The following articles are recommended for additional reading

Last updated