如果值列表只有一个项目,我想按代码选择一个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);
有帮助吗?
谢谢!
我不知道item.setParent(cb_empresa);
是否对视图有直接影响。您可以稍后尝试设置索引,也可以在刷新cb_empresa之后尝试设置索引。
首先,你的代码是错误的。你必须创建与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()作为解决方法。
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);
}