如果值列表只有一个项目,我想按代码选择comboBox的第一项。我试过这个:
Comboitem item = new Comboitem();
for(Empresa e : empresasList){
item.setValue(e.getEmpId());
item.setLabel(e.getEmpNombre());
item.setParent(cb_empresa);
}
if(empresasList.size()==1){
idEmpresa = empresasList.get(0).getEmpId();
//cb_empresa.setSelectedIndex(0);
cb_empresa.setSelectedItem(item);
}
但它不起作用。我也尝试过注释行:
//cb_empresa.setSelectedIndex(0);
任何帮助?
谢谢!
答案 0 :(得分:0)
我不知道item.setParent(cb_empresa);
是否会对视图产生直接影响。
您可以稍后尝试设置索引,也可以在刷新cb_empresa之后尝试设置索引。
答案 1 :(得分:0)
首先,您的代码是错误的。你必须创建与empresasList.size()一样多的Comboitems。我想像是
for(Empresa e : empresasList){
Comboitem item = new Comboitem();
item.setValue(e.getEmpId());
item.setLabel(e.getEmpNombre());
cb_empresa.appendItem(item);
}
if(cb_empresa.getItemCount()==1){
cb_empresa.setSelectedIndex(0);
}
应该有效。但是,ZK中存在一个错误,即setSelectedIndex()必须被推迟,如Aloong所述。据我记忆,这个错误已得到修复。如果没有,您可以使用Event.echoEvent()作为解决方法。
答案 2 :(得分:0)
for(Empresa e : empresasList){
Comboitem item = new Comboitem();
item.setValue(e.getEmpId());
item.setLabel(e.getEmpNombre());
cb_empresa.appendChild(item);
}
if(cb_empresa.getItemCount()==1){
cb_empresa.setSelectedIndex(0);
}