select 单选
基本用法
select
与 comboBox 类似。
当不需要用户输入对选项进行过滤时,请使用 select
。
select
最基本的用法就是从枚举中选择值:
<select itemsEnum="com.company.onboarding.entity.DayOfWeek"
label="Select the day of week"/>

数据绑定
可以将组件与 数据容器 中的实体和属性绑定。
如需将 select
与实体属性绑定:
-
使用 dataContainer 属性指定数据容器。
-
使用 property 属性指定实体的属性。
-
使用 itemsContainer 属性指定选项列表的数据容器。
<data>
<instance class="com.company.onboarding.entity.User"
id="userDc"> (1)
<fetchPlan extends="_base"> (2)
<property name="department" fetchPlan="_base"/>
</fetchPlan>
<loader id="userDl"/>
</instance>
<collection class="com.company.onboarding.entity.Department"
id="departmentsDc"> (3)
<fetchPlan extends="_base"/>
<loader id="departmentsDl">
<query>
<![CDATA[select e from Department e]]>
</query>
</loader>
</collection>
</data>
<layout>
<select dataContainer="userDc"
property="department"
itemsContainer="departmentsDc"/> (4)
</layout>
1 | User 实体的 InstanceContainer 。 |
2 | 数据容器中的内嵌 fetch plan。 |
3 | Department 实体的 CollectionContainer 。 |
4 | select 使用 departmentsDc 作为选项容器,以展示部门列表。 |
XML 属性
id - autofocus - classNames - colspan - dataContainer - emptySelectionAllowed - emptySelectionCaption - enabled - errorMessage - height - helperText - invalid - itemsContainer itemsEnum - label - maxHeight - maxWidth - minHeight - minWidth - pattern - placeholder - property - readOnly - required - requiredIndicatorVisible - tabIndex - themeNames - title - value - valueChangeMode - valueChangeTimeout - visible - width
emptySelectionAllowed
设置是否允许用户选择空值。当设置为 true
时,选项列表中会显示一个空白选项。
默认为 false
。
空选项可以通过 emptySelectionCaption 属性进行自定义。
emptySelectionCaption
当 emptySelectionAllowed = true 时,设置空白选项的标题。用于在选项列表中显示。
当选择空白选项时,组件显示的值为 itemLabelGenerator 提供的 null 选项值,或者由 placeholder 属性设置的占位符,当占位符也没设置时,则显示空白。
事件和处理器
AttachEvent - BlurEvent - ClientValidatedEvent - ComponentValueChangeEvent - DetachEvent - FocusEvent - InvalidChangeEvent - OpenedChangeEvent - itemEnabledProvider - itemLabelGenerator - statusChangeHandler - validator
在 Jmix Studio 生成处理器桩代码时,可以使用 Jmix UI 组件面板的 Handlers 标签页或者视图类顶部面板的 Generate Handler 添加,也可以通过 Code → Generate 菜单(Alt+Insert / Cmd+N)生成。 |
itemEnabledProvider
itemEnabledProvider
作用于每个选项,用于判断该选项是否启用(true
)或禁用(false
)。禁用的选项显示为灰色,用户无法选择。默认所有选项都启用。
@Install(to = "select", subject = "itemEnabledProvider")
private boolean selectItemEnabledProvider(final Department department) {
if (department != null) {
return department.getHrManager() != null;
}
return true;
}