Vaadin ComboBox将项目设置为html无效

时间:2018-09-21 10:55:11

标签: combobox vaadin vaadin8

代码:

    ComboBox<String> comboBox = new ComboBox<>("TEST-Combo");
    comboBox.setCaptionAsHtml(true);
    comboBox.setItemCaptionGenerator(item -> "<b>" + item + "</b>");
    comboBox.setTextInputAllowed(false);
    comboBox.setItems("xxx", "<i>yyy</i>", "<b>zzz</b>");

重用:

enter image description here

是Vaadin Bug还是我的失败?

编辑

Vaadin版本8.5.2

3 个答案:

答案 0 :(得分:3)

方法 comboBox.setCaptionAsHtml(true)不影响物品。它设置ComboBox字幕的模式,在您的情况下为“ TEST-Combo”

在Vaadin 8中,ComboBox中的项目目前不支持HTML。

但是有comboBox.setStyleGenerator()允许您在CSS中设置项目特定的样式。即如果您要设置粗体字体,则可以设置类似

  

comboBox.setStyleGenerator(item->“ bold-font”);

和主题SCSS混入

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

答案 1 :(得分:0)

这是一项缺少的功能。为了帮助防止XSS漏洞,项目标题显示为纯文本而不是HTML。 ticket是关于可以对其进行配置以将其内容显示为HTML的方法,但是它已经很长时间没有使用,因此不太可能很快被修复。

答案 2 :(得分:0)

您可以使用自定义渲染器(在您的情况下为HtmlRenderer

ComboBox<String> comboBox = new ComboBox<>();
comboBox.setRenderer( new HtmlRenderer() );

这使您的组合项目以HTML呈现

此处介绍了更复杂的渲染器: https://vaadin.com/components/vaadin-combo-box/java-examples/using-components