我正在使用ZK框架,我想用给定列表的值填充组合框,但我还想要包含一个"选择一个......"选项,因为组合不需要在提交时具有值。
我的观点如下:
<row>
<hbox>
Items:
</hbox>
<combobox width="100%" readonly="true" model="@load(vm.itemList)" selectedItem="@bind(vm.object.item)" >
<template name="model">
<comboitem label="@load(each.description)" />
</template>
</combobox>
</row>
在ViewModel中,我使用数据库中的记录集检索列表,并且我不想为此添加记录,如果可能,我还想避免在列表中添加空项。
我认为应该可以这样做:
<combobox width="100%" readonly="true" model="@load(vm.itemList)" selectedItem="@bind(vm.object.item)" >
<template name="model">
<comboitem label="@load(each.description)" />
</template>
<comboitem label="Select One..."/>
</combobox>
但无论是那还是不起作用:
<combobox width="100%" readonly="true" model="@load(vm.itemList)" selectedItem="@bind(vm.object.item)" >
<template name="model">
<comboitem label="@load(each.description)" />
<comboitem label="Select One..."/>
</template>
</combobox>
答案 0 :(得分:0)
您可以修改视图模型的getItemList
方法,以便将所需的项添加到列表中,如下所示:
public List getItemList() {
List itemList = getItemsFromDatabase();
YourItemClass item = new YourItemClass();
item.setDescription("Select One...");
itemList.add(item);
return itemList;
}
编辑:另一种选择是使用带有“选择一个...”文本的placeholder和一个用于清除组合框中所选项目的附加按钮(和/或热键)。