|
|||
TAG LIBRARIES: <netui> | <netui-data> | <netui-template> | |||
DETAIL: Syntax | Description | Attributes | Example | Implementing Class: org.apache.beehive.netui.tags.html.Select |
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:
- they can be dynamically generated by pointing the <netui:select> tag at a String[] object or java.util.HashMap
- 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[] colors = {"red", "green", "blue", "orange", "pink", "aqua", "black", "brown", "tan"}; public String[] getColors() { return colors; }
To point the <netui:select> tag at the String[] object use the
optionsDataSource
attribute.
<netui:select dataSource="actionForm.selection" optionsDataSource="${pageFlow.colors}"/>Note that you can make the display value and the submitted value differ by pointing the optionsDataSource attribute of the <netui:select> tag at a HashMap object. (Any object that implements the java.util.Map interface will work.)
public HashMap optionsMap = new HashMap(); protected HashMap getOptionsMap() { return optionsMap; } protected void onCreate() { optionsMap.put("#ff3333", "red"); optionsMap.put("#3333ff", "blue"); optionsMap.put("#33ff33", "green"); }
However, you cannot use a Map object if you choose to use the Select as a repeater (setting the attribute repeater="true").
Point the <netui:select> at the Map object using the optionsDataSource
attribute.
<netui:select dataSource="actionForm.selection" optionsDataSource="${pageFlow.optionsMap}"/>The following HTML will be generated.
<select name="wlw-select_key:{actionForm.selection}"> <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.selection" 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; } }
Use Select as a Repeater with Multiple Repeating Types
Optionally, use the <netui:select> tag as a repeater to render multiple options
from the dataSource
and defaultValue
attributes as well as
the optionsDataSource
. The <netui:select> element can dynamically generate
option elements for different repeating types of "option", "dataSource", "default",
(optionsDataSource, dataSource, and defaultValue attributes respectively) and "null".
The Select repeatingOrder
attribute sets the order that repeating types
are generated. The repeatingType
attribute on the <netui:selectOption>
tag identifies each of the types to be rendered.
Use JSTL boolean conditional tags with the <netui:selectOption> elements
to help manage repeaters of different data types.
For example, the dataSource
could point to a String[] while
the optionsDataSource
points to an Object[] where each object has
name and value fields...
<netui:select dataSource="actionForm.selections" optionsDataSource="${pageFlow.options}" repeatingOrder="dataSource,option" repeater="true" multiple="true"> <c:if test="${container.metadata.dataSourceStage}"> <netui:selectOption repeatingType="dataSource" value="${container.item}"> <netui:span value="${container.item}" /> </netui:selectOption> </c:if> <c:if test="${container.metadata.optionStage}"> <netui:selectOption repeatingType="option" value="${container.item.name}"> <netui:span value="${container.item.value}" /> </netui:selectOption> </c:if> </netui:select>
Attributes | |||||||
accessKey |
A, C, E, F, G,
H, V, left arrow, and right arrow |
||||||
dataSource |
The 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. The 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. |
||||||
defaultValue |
Use in <netui:checkBoxGroup>, <netui:checkBox>, <netui:radioButtonGroup>, and <netui:select> tags Sets the preselected value or values. The If the If the Use in <netui:textArea> and <netui:textBox> tags Sets the initial display text. The |
||||||
dir |
LTR | RTL ) |
||||||
disabled |
|
||||||
lang |
|
||||||
multiple |
nullable is set to true. |
||||||
nullable |
attribute set to true, the null option won't be shown. |
||||||
nullableOptionText |
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 |
|
||||||
onChange |
|
||||||
onClick |
|
||||||
onDblClick |
|
||||||
onFocus |
|
||||||
onKeyDown |
|
||||||
onKeyPress |
|
||||||
onKeyUp |
|
||||||
onMouseDown |
|
||||||
onMouseMove |
|
||||||
onMouseOut |
|
||||||
onMouseOver |
|
||||||
onMouseUp |
|
||||||
optionsDataSource |
|
||||||
repeater |
|
||||||
repeatingOrder |
repeatingOrder="dataSource,option"Then a <netui:selectOption> element could set the repeatingType attribute to "dataSource" while another is defined for "option". |
||||||
size |
|
||||||
style |
|
||||||
styleClass |
|
||||||
tabindex |
|
||||||
tagId |
String value. Sets the For example, assume that some tag's <netui:textBox tagId="foo" /> Then the following JavaScript function will return the real id attribute rendered in the browser: lookupIdByTagId( "foo", this ) To get a <netui:form> element and all of its children elements in JavaScript, use
the same JavaScript function <netui:form tagId="bar" > Then the following JavaScript function will return the <netui:form> element and its children (packaged as an array). document[lookupIdByTagId( "bar", this )] To retreive the value entered into a <netui:textBox> within the <netui:form> tag, use the following JavaScript expression. document[lookupIdByTagId("bar", this)][lookupIdByTagId("foo", this)].value The second parameter ensures that the JavaScript function
begins its search within the correct Portlet scope. Pass the
JavaScript keyword |
||||||
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 name="wlw-select_key:{actionForm.itemOptions}"> <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>
|
|||
TAG LIBRARIES: <netui> | <netui-data> | <netui-template> | |||
DETAIL: Syntax | Description | Attributes | Example | Implementing Class: org.apache.beehive.netui.tags.html.Select |