我正在Vaadin 8,并有一个带的TreeGrid的列设置用于编辑组合框。不幸的是,当我点击它随时打开和关闭下拉一排组合,几乎没有让我看到了组合的选择,但我仍然可以在组合中键入文本,然后才出现的下拉列表(组合有几样值在里面)。我注意到,当我的会话过期(和服务器没有连接),我能够获得下拉打开。
这里是我的代码片段添加这样的列:
tg.addComponentColumn( r -> {
ComboBox<String> labelsCb = new ComboBox<>();
labelsCb.setNewItemProvider( new NewItemProvider<String>() {
@Override
public Optional<String> apply( String t ) {
return Optional.of( t );
}
} );
labelsCb.setDataProvider( labelsDp );
labelsCb.setHeight( LABEL_COMBO_HEIGHT + "px" );
labelsCb.setWidth( LABEL_COMBO_WIDTH_PX + "px" );
labelsCb.addSelectionListener( event -> {
r.setLabel( event.getValue() );
});
return labelsCb;
} ).setCaption( LABEL ).setWidth( LABEL_COMBO_WIDTH_PX * 1.40 );
找到了原因 - 我的组合柱用的TreeGrid的扩展列(左一)干扰 - 一旦我做了第二列它开始工作。它是用的TreeGrid一个错误,我相信,但是这一次是一个体面的解决办法。