Combobox Vaadin 8组合框将项目设置为html无效

Combobox Vaadin 8组合框将项目设置为html无效,combobox,vaadin,vaadin8,Combobox,Vaadin,Vaadin8,守则: ComboBox组合框=新组合框(“测试组合”); comboBox.setCaptionAsHtml(true); comboBox.setItemCaptionGenerator(项->“”+项+“”); comboBox.setTextInputAllowed(false); comboBox.setItems(“xxx”、“yyy”、“zzz”); 雷乌斯尔特: 是Vaadin Bug还是我的失败 编辑 Vaadin版本8.5.2方法 comboBox.setCaption

守则:

ComboBox组合框=新组合框(“测试组合”);
comboBox.setCaptionAsHtml(true);
comboBox.setItemCaptionGenerator(项->“”+项+“”);
comboBox.setTextInputAllowed(false);
comboBox.setItems(“xxx”、“yyy”、“zzz”);
雷乌斯尔特:

是Vaadin Bug还是我的失败

编辑

Vaadin版本8.5.2方法
comboBox.setCaptionAsHtml(true)
不影响项目。它设置组合框标题的模式,在您的例子中是“测试组合”

在Vaadin8中,目前没有对ComboBox中项目的HTML支持

但是,有一个
comboBox.setStyleGenerator()
,允许您在CSS中设置特定于项的样式。也就是说,如果要设置粗体字体,可以设置如下内容

comboBox.setStyleGenerator(项目->粗体字体)

主题为SCSS混音

.bold-font {
   font-weight: bold;
}

这是一个缺失的功能。为了帮助防止XSS漏洞,将项目标题呈现为纯文本,而不是HTML。关于如何将其配置为以HTML形式显示内容,还有一个问题需要解决,但它已处于非活动状态很长一段时间,因此不太可能很快得到修复。

您可以使用自定义呈现程序(在您的情况下是
HtmlRenderer
):

ComboBox-ComboBox=新的ComboBox();
setRenderer(新的HtmlRenderer());
这将使您的组合项以HTML呈现

此处介绍了更复杂的渲染器:

是的,ComboBox中的渲染器机制是Vaadin 10+版本中添加的新功能。
.bold-font {
   font-weight: bold;
}
ComboBox<String> comboBox = new ComboBox<>();
comboBox.setRenderer( new HtmlRenderer() );