<netui:select> Tag

Renders an HTML <select> tag containing a set of selectable options.

Syntax

<netui:select
    [accessKey="accessKey"]
    dataSource="dataSource"
    [defaultValue="defaultValue"]
    [dir="dir"]
    [disabled="disabled"]
    [lang="lang"]
    [multiple="multiple"]
    [nullable="nullable"]
    [nullableOptionText="nullableOptionText"]
    [onBlur="onBlur"]
    [onChange="onChange"]
    [onClick="onClick"]
    [onDblClick="onDblClick"]
    [onFocus="onFocus"]
    [onKeyDown="onKeyDown"]
    [onKeyPress="onKeyPress"]
    [onKeyUp="onKeyUp"]
    [onMouseDown="onMouseDown"]
    [onMouseMove="onMouseMove"]
    [onMouseOut="onMouseOut"]
    [onMouseOver="onMouseOver"]
    [onMouseUp="onMouseUp"]
    [optionsDataSource="optionsDataSource"]
    [repeater="repeater"]
    [repeatingOrder="repeatingOrder"]
    [size="size"]
    [style="style"]
    [styleClass="styleClass"]
    [tabindex="tabindex"]
    [tagId="tagId"]
    [title="title"] />

Description

Renders an HTML <select> tag containing a set of selectable options.

The <netui:select> tag can generate a set of selectable options in two ways:

  1. they can be dynamically generated by pointing the <netui:select> tag at a String[] object or java.util.HashMap
  2. they can be statically generated by providing a set of children <netui:selectOption> tags

Dynamically Generated Options

You can dynamically generate a set of selectable options by pointing the <netui:select> tag at a String[].

    public String[] _options = {"red", "green", "blue", "orange", "pink", "aqua", "black", "brown", "tan"};

To point the <netui:select> tag at the String[] object use the optionsDataSource attribute.

    <netui:select optionsDataSource="{pageFlow._options}"
Note that you can make the display value and the submitted value differ by pointing the <netui:select> tag at a HashMap object. (Any object that implements the java.util.Map interface will work.)
    public HashMap _hashMap = new HashMap();

    protected void onCreate()
    {
        _hashMap.put("#ff3333", "red");
        _hashMap.put("#3333ff", "blue");
        _hashMap.put("#33ff33", "green");
    }
The following HTML will be generated.
      <select size="3">
          <option value="#3333ff">blue</option>
          <option value="#33ff33">green</option>
          <option value="#ff3333">red</option>
      </select>

Statically Generated Options

To statically generate selecable options, place a set of <netui:selectOption> tags inside the <netui:select> tag.

      <netui:select dataSource="{actionForm.selections}" size="5">
          <netui:selectOption value="red" />
          <netui:selectOption value="blue" />
          <netui:selectOption value="green" />
          <netui:selectOption value="yellow" />
          <netui:selectOption value="orange" />
      </netui:select>

Submitting Selections

A <netui:select> is submitted as a String or String[] object, depending on whether the multiple attribute is set to true. In the following example, the dataSource attribute points at a String[] object.

     </netui:select dataSource="{actionForm.selections}">

In this case, the <netui:select> tag submits to a String[] field of a Form Bean.

    public static class SubmitForm extends FormData
    {
        private String[] selections;

        public void setSelections(String[] selections)

        {
            this.selections = selections;
        }

        public String[] getSelections()
        {
            return this.selections;
        }
    }

Attributes
accessKey
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The keyboard navigation key for the element. The following values are not recommended because they are often used by browsers: A, C, E, F, G, H, V, left arrow, and right arrow
dataSource
Required: Yes  |   Supports runtime evaluation: No  |   Data bindable:

The dataSource attribute determines both (1) the source of populating data for the tag and (2) the object to which the tag submits data.

For example, assume that the Controller file (= JPF file) contains a Form Bean with the property foo. Then the following <netui:textBox> tag will (1) draw populating data from the Form Bean's foo property and (2) submit user defined data to the same property.

    <netui:textBox dataSource="{actionForm.foo}" />

The dataSource attribute takes either a data binding expression or the name of a Form Bean property. In the above example, <netui:textBox dataSource="foo" /> would have the exactly same behavior.

When the tag is used to submit data, the data binding expression must refer to a Form Bean property. In cases where the tag is not used to submit data, but is used for displaying data only, the data binding expression need not refer to a Form Bean property. For example, assume that myIterativeData is a member variable on the Controller file ( = JPF file). The following <netui-data:repeater> tag draws its data from myIterativeData.

    <netui-data:repeater dataSource="{pageFlow.myIterativeData}">

defaultValue
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable:

Use in <netui:checkBoxGroup>, <netui:checkBox>, <netui:radioButtonGroup>, and <netui:select> tags

Sets the preselected value or values.

The defaultValue attribute takes either a String literal or a data binding expression.

If the defaultValue attribute has a String value (or if the data binding expression points to a String), then a single value will be preselected.

If the defaultValue attribute points to a String[] object (or any object which can be iterated over), then multiple values will be preselected.

Use in <netui:textArea> and <netui:textBox> tags

Sets the initial display text.

The defaultValue attribute takes either a String literal or a data binding expression that points to a String.

dir
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The dir.
disabled
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable:

lang
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The lang.
multiple
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

Boolean. Whether or not multi-selection is enabled. If multiple selection is enabled, a null option will not be displayed, even if the nullable is set to true.
nullable
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

Boolean. Whether a option with the value null should be added to the bottom of the list. If <select> has the multiple attribute set to true, the null option won't be shown.
nullableOptionText
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

Boolean. If the nullable attribute is set to true, then the nullableOptionText attribute determines the display text of the null option. The default is to use the empty string, "", as the display text.
onBlur
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable:

onChange
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable:

onClick
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The onClick JavaScript event.
onDblClick
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The onDblClick JavaScript event.
onFocus
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable:

onKeyDown
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The onKeyDown JavaScript event.
onKeyPress
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The onKeyPress JavaScript event.
onKeyUp
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The onKeyUp JavaScript event.
onMouseDown
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The onMouseDown JavaScript event.
onMouseMove
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The onMouseMove JavaScript event.
onMouseOut
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The onMouseOut JavaScript event.
onMouseOver
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The onMouseOver JavaScript event.
onMouseUp
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The onMouseUp JavaScript event.
optionsDataSource
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable:

repeater
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable:

repeatingOrder
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable:

size
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The number of visible options
style
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The style.
styleClass
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The style class.
tabindex
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The tabIndex of the rendered HTML tag. This attribute determines the position of the tag in the sequence of page elements that the user may advance through by pressing the TAB key.
tagId
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

String value. Sets the id (or name) attribute of the rendered HTML tag. Note that the real id attribute rendered in the browser may be changed by the application container (for example, Portal containers may change the rendered id value to ensure the uniqueness of id's on the page). In this case, the real id rendered in the browser may be looked up through the JavaScript function getNetuiTagName( tagId, tag ).

For example, assume that some tag's tagId attribute is set to foo.

    <netui:textBox tagId="foo" />

Then the following JavaScript function will return the real id attribute rendered in the browser:

    getNetuiTagName( "foo", this )

To get a <netui:form> element and all of its children elements in JavaScript, use the same JavaScript function getNetuiTagName( tagId, tag ). For example, assume that there is a <netui:form> whose tagId attribute is set to bar.

    <netui:form tagId="bar" >

Then the following JavaScript function will return the <netui:form> element and its children (packaged as an array).

    document[getNetuiTagName( "bar", this )]

To retreive the value entered into a <netui:textBox> within the <netui:form> tag, use the following JavaScript expression.

    document[getNetuiTagName("bar", this)][getNetuiTagName("foo", this)].value

The second parameter ensures that the JavaScript function begins its search within the correct Portlet scope. Pass the JavaScript keyword this as the second parameter. For detailed information on using the function getNetuiTagName( tagId, tag ) see Using JavaScript in Page Flow and Portal Applications.

title
Required: No  |   Supports runtime evaluation: Yes  |   Data bindable: No

The title.

 
Example

The following sample uses the optionsDataSource attribute to reference a dynamically generated dropdown list.

 <netui:select dataSource="{actionForm.selectedOption}"
     optionsDataSource="{actionForm.itemOptions}" />
 

Assume that the optionsDataSource attribute refers to a java.util.Map object. The Map object will be rendered as a series of <option> tags. HTML that is similar to the following will be rendered in the browser:

    <select>
        <option value="633">Aurora Bridge</option>
        <option value="631">FA-18 fighter jet</option>
        <option value="635">Space Needle</option>
        <option value="642">Thin Mints</option>
 	      ...
    </select>