SearchField 组件
SearchField 组件由一个文本输入字段和执行搜索的按钮组成。也提供运行时配置选项,通过配置按钮访问。
XML 元素 |
|
|---|---|
Java 类 |
|
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 然后双击。
<search:searchField id="searchField"/>
如果不使用视图设计器,可以手动在视图 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 Strategy(搜索策略) |
确定搜索词的处理方式 |
|
Size(数量) |
限制搜索结果的数量 |
|
Entities(实体) |
指定要搜索的实体(可以选择多个实体) |
搜索结果视图
默认情况下,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 的特殊属性:
| 名称 | 描述 | 默认值 |
|---|---|---|
指定要搜索的实体。多个实体可以用逗号分隔。
|
- |
|
指定 搜索结果视图 的打开模式。 |
|
|
设置是否显示搜索按钮。 |
|
|
设置搜索结果中一页显示的结果数量。 |
默认使用 jmix.search.search-result-page-size 的配置。 |
|
设置搜索策略。参阅 搜索策略。 |
|
|
设置是否显示设置按钮( |
|