下拉列表框:162
Combobox、comboitem
Combobox:是一个内嵌下拉列表的特殊文本框,可直接输入文本,还可从下拉列表中选择一项
属性:
autodrop=”true”:不用点击下拉按钮或按快捷键,在文本框中输入任何字符,下拉列表自动打开
description:可为每个comboitem添加一个描述
< combobox autodrop=”true”>
<comboitem label=”选项1” image=”/img/coffee.gif” description=”咖啡”/>
<comboitem label=”选项2”/>
<comboitem label=”选项3”/>
</ combobox>
像其他支持图象的组件,可以使用setImageContent方法为comboitem组件指派一个动态生成的图像
事件:
延时创建下拉列表项
使用fulfill属性onOpen:当用户打开下拉列表时,onOpen事件被发送至应用,为延迟comboitem的创建,可使用fulfill属性
< combobox fulfill=”onOpen”>
<comboitem label=”选项1” image=”/img/coffee.gif” description=”咖啡”/>
<comboitem label=”选项2”/>
<comboitem label=”选项3”/>
</ combobox>
或监听onOpen事件,然后在事件监听器中准备下拉列表或动态的改变列表
< combobox id=”combo” onOpen=”prepare()”/>
<zscript>
Void prepare(){
if(event.isOpen() && combo.getItemCount() ==0{
Combo.appendItem(“选项1”);
Combo.appendItem(“选项2”);
Combo.appendItem(“选项3”);
}
}
</zscript>
appendItem方法===创建一个comboitem,然后将其父组件指派为comobox
onChanging:添加一个事件监听,可基于用户的输入来填充下拉列表
<combobox id=”combo” autodrop=”true” onChanging=”suggest()”/>
<zscript>
Void suggest(){
Combo.getItems().clear();
If(event.value.startsWith(“A”)){
Combo.appendItem(“A开头的选项1”);
Combo.appendItem(“A开头的选项2”);
Combo.appendItem(“A开头的选项3”);
}else if(event.value.startsWith(“B”)){
Combo.appendItem(“B开头的选项1”);
Combo.appendItem(“B开头的选项2”);
}
}
</zscript>
当接收onChanging事件时,combobox的内容并不会改变,因此不能使用combobox的value属性,要使用事件org.zkoss.zk.ui.event.InputEvent的value属性