SearchField 组件

SearchField 组件由一个文本输入字段和执行搜索的按钮组成。也提供运行时配置选项,通过配置按钮访问。

XML 元素

searchField

Java 类

io.jmix.searchflowui.component.SearchField

XML 属性

id - alignSelf - ariaLabel - ariaLabelledBy - autofocus - classNames - colspan - css - enabled - entities - focusShortcut - height - helperText - justifySelf - label - maxHeight - maxWidth - minHeight - minWidth - openMode - placeholder - searchButtonVisible - searchSize - searchStrategy - settingsButtonVisible - tabIndex - themeNames - title - value - valueChangeMode - valueChangeTimeout - visible - width

事件和处理器

AttachEvent - BlurEvent - ComponentValueChangeEvent - DetachEvent - FocusEvent - InputEvent - KeyDownEvent - KeyPressEvent - KeyUpEvent - searchCompletedHandler

基本用法

使用 Studio 添加组件至视图。

点击操作面板的 Add Component,找到 SearchField 然后双击。

create search field component

会在 Jmix UI 结构面板和 XML 中添加 searchField。与其他 UI 组件 一样,可以配置标准属性(idheightwidth 等)。

<search:searchField id="searchField"/>
search field

如果不使用视图设计器,可以手动在视图 XML 中声明 search 命名空间:

<view xmlns="http://jmix.io/schema/flowui/view"
      xmlns:search="http://jmix.io/schema/search/ui"
      title="msg://searchView.title">

运行时配置

searchField 包含一个 设置按钮(垂直省略号 ),点击该按钮会打开一个配置对话框,用户可以在不修改 XML 的情况下动态调整搜索参数。

search settings dialog

用户可以在运行时配置以下选项:

配置 对应属性 描述

Search Strategy(搜索策略)

searchStrategy

确定搜索词的处理方式

Size(数量)

searchSize

限制搜索结果的数量

Entities(实体)

entities

指定要搜索的实体(可以选择多个实体)

隐藏配置按钮

可以使用 settingsButtonVisible 属性隐藏配置按钮。

<search:searchField id="searchCustomerField"
                    settingsButtonVisible="false"/>

搜索结果视图

默认情况下,searchField 会打开内置的 SearchResultsView。该视图处理搜索引擎的查询过程,并根据 openMode 属性,在当前导航视图或对话框中显示结果。

如需修改此行为,需要配置一个 SearchCompletedHandler。可以通过 @Install 注解以声明方式,或使用 setSearchCompletedHandler() 以编程方式配置。

使用 @Install 的示例:

@Autowired
private DialogWindows dialogWindows;

@ViewComponent
private SearchField searchField;

@Install(to = "searchField", subject = "searchCompletedHandler")
private void searchFieldSearchCompletedHandler(
        final SearchField.SearchCompletedEvent event) {
    DialogWindow<SearchResultsView> searchResultsDialog =
            dialogWindows.view(UiComponentUtils.getView(this),
                            SearchResultsView.class)
                    .build();
    SearchResultsView view = searchResultsDialog.getView();
    view.initView(new SearchFieldContext(searchField));
    searchResultsDialog.open();
}

XML 属性

通用属性 对所有组件都是一样的配置。 下面是 searchField 的特殊属性:

名称 描述 默认值

entities

指定要搜索的实体。多个实体可以用逗号分隔。

<search:searchField id="searchField"
                    entities="Customer, Order_"/>

-

openMode

指定 搜索结果视图 的打开模式。NAVIGATION 在主窗口打开;DIALOG 在模态窗打开。

NAVIGATION

searchButtonVisible

设置是否显示搜索按钮。

true

searchSize

设置搜索结果中一页显示的结果数量。

默认使用 jmix.search.search-result-page-size 的配置。

searchStrategy

设置搜索策略。参阅 搜索策略

anyTermAnyField

settingsButtonVisible

设置是否显示设置按钮()。参阅 运行时配置

true