首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vaadin23访问从自定义渲染器输入到ComboBox的搜索项

Vaadin23访问从自定义渲染器输入到ComboBox的搜索项
EN

Stack Overflow用户
提问于 2022-07-29 23:12:30
回答 1查看 32关注 0票数 0

我为ComboBox项实现了自定义ComboBox

代码语言:javascript
复制
private Renderer<CompositeEntityResult> createRenderer() {

        StringBuilder tpl = new StringBuilder();

        tpl.append("<div style=\"display: flex;\">");
        tpl.append("  <div>");
        tpl.append("    <span ${item.name}</span>
...

comboBox.setRenderer(createRenderer());

是否有可能以某种方式将输入的搜索项访问到呈现器HTML标记中的ComboBox?此外,用于此标记的模板引擎是什么?

更新

代码语言:javascript
复制
private Renderer<CompositeEntityResult> createRenderer() {

        StringBuilder tpl = new StringBuilder();

        tpl.append("<div style=\"display: flex;\">");
        tpl.append("  <div>");
        tpl.append("    <span ${item.name}</span>
...

 return LitRenderer.<CompositeEntityResult>of(tpl.toString())
                .withProperty("name", e -> "< b>" + e.getName() + < /b>))

现在,它看起来就像ComboBox窗口中的纯文本,就像<b>somename</b>一样,但是我希望用粗体代替。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-31 11:25:11

在用户离开输入字段之前,您必须使用JavaScript获取值:

代码语言:javascript
复制
comboBox.getElement()
   .executeJs("return this.querySelector('input').value")
   .then(String.class, value -> { // use the value });

回答你的第二个问题:

代码语言:javascript
复制
private Renderer<CompositeEntityResult> createRenderer() {

    StringBuilder tpl = new StringBuilder();

    tpl.append("<div style=\"display: flex;\">");
    tpl.append("  <div>");
    tpl.append("    <span><b>${item.name}</b></span>
...

return LitRenderer.<CompositeEntityResult>of(tpl.toString())
            .withProperty("name", e -> e.getName() ))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73171783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档