Vaadin:如何在组合框的输入字段中设置部分值并触发弹出窗口打开?

问题描述 投票:0回答:1

Vaadin V24,Java。

我想以编程方式设置用作搜索字段的组合框(部分输入)的文本,然后触发它进行搜索。这就像用户自己输入一样。我很确定没有办法从服务器端执行此操作。

我的想法是这样的,我在

<vaadin-combo-box>
上设置值,然后触发按键事件:

ComboBox<PojoClassHere> searchBox = new ComboBox<>();
...later in code...
searchBox.getElement().executeJs("this.setAttribute('value', '" + textValueToInsert + "'); this.dispatchEvent(new Event('input', { bubbles: true, cancelable: true}));");

但这似乎没有任何作用。

根据这个页面,https://cdn.vaadin.com/vaadin-web-components/24.2.1/#/elements/vaadin-combo-box,你可以设置

<vaadin-combo-box>
上的值,它将传播到内部组件。我认为按键事件会触发它进行搜索并下拉列表。

combobox vaadin
1个回答
0
投票

这不是一个常见的用例,因此没有适用于它的 Java API。但这可以通过以下 JavaScript 调用来实现

comboBox.getElement().executeJs("""
    this.inputElement.value='Au';
    this.inputElement.dispatchEvent(new Event('input', { bubbles: true, cancellable: true}));
""");

这将在包含国家/地区名称列表的组合框中产生以下结果:

© www.soinside.com 2019 - 2024. All rights reserved.