如何添加"选择一个..." ZK组合框中的选项

时间:2015-04-28 15:18:40

标签: java combobox zk

我正在使用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> 

1 个答案:

答案 0 :(得分:0)

您可以修改视图模型的getItemList方法,以便将所需的项添加到列表中,如下所示:

public List getItemList() {
    List itemList = getItemsFromDatabase();
    YourItemClass item = new YourItemClass();
    item.setDescription("Select One...");
    itemList.add(item);
    return itemList;
}

编辑:另一种选择是使用带有“选择一个...”文本的placeholder和一个用于清除组合框中所选项目的附加按钮(和/或热键)。