List box control with multiple selectable values
To select multiple rows, hold down shift or ctrl and click.
Returns the options.
The options users can choose from.
When using this column, all options with the same OptionGroup will be grouped together under a heading labeled with the OptionGroup value.
Retrieves the default value for the control.
This call is only made if there is a field validation set for the field info and the field has any content. Fields used in an editable grid do not use this call.
Performs field validation when the user leaves the field or one of its dependencies is changed, initial values set by default value and initial values in edit-mode are not validated.
When saving the validation runs server side if the field value has changed. A field value is considered changed if in new mode the value is anything other than NULL
. In edit mode it is considered changed if it has a value that was not returned by the GetEditFields procedure.
Example multilistbox procedure. As you can see, the procedure is identical to that of a dropdown and should be named accordingly. This way the field type can be changed without having to rename the procedure.
CREATE PROCEDURE Example.MultiListBoxTable_Dropdown
AS
BEGIN
SELECT
MLBT.MultiListBoxTableId,
MLBT.MultiListBoxTableName
FROM
Example.MultiListBoxTable MLBT
ORDER BY
2
END
For stable and predictable behaviour, always use an explicit ORDER BY clause.
The name depends on the usage. If the control is used to retrieve values from a lookup table then the procedure should be named "<Schema>.<LookupTable>Dropdown". If it is not and the values are not directly linked to rows in a table or the functionality is specific for the current field (say for instance a choice between each of the last six years) then the procedure should be named "<Schema>.<Table><Field>_Dropdown".
The suffix "_Dropdown" should be used since the control works exactly like a dropdown regarding result sets from the SQL call and naming the procedure in that way enables you to change field type without renaming the procedure.