【问题标题】:SAPUI5 Search Field Suggestion AutocompleteSAPUI5 搜索字段建议自动完成
【发布时间】:2018-08-24 12:43:47
【问题描述】:

我正在开发一个 SAPUI5 应用程序。我想要实现的是在我的搜索字段中有一个建议列表自动完成。例如当我输入“app”时, 我将列出“苹果,应用程序”的建议。建议列表正在从 xsodata Web 服务中检索。

我在 SAPUI5 中使用了 enableSuggestions 和SuggestionsItems,但它根本不起作用。以下是我的示例代码。

view.xml

    <headerToolbar>
        <Toolbar>
            <Title text="Product Module"/>
            <ToolbarSpacer/>
            <SearchField width="50%" enableSuggestions="true" search="onFilterProducts" suggest="onSuggest"
            suggestionItems="{
                path: 'newspageModel>/Product',
                sorter: { path: 'BRAND_NO' }
            }"
            >
                <suggestionItems>
                    <SuggestionItem text="{PRODUCT_NAME}"  key="{PRODUCT_NO}"/>
                </suggestionItems>  
            </SearchField>
        </Toolbar>
    </headerToolbar>

Controller.js

    onSuggest: function(oEvent){
            var value = oEvent.getParameter("suggestValue");
        var filters = [];
        if (value) {
            filters = [
                new sap.ui.model.Filter([
                    new sap.ui.model.Filter("PRODUCT_NAME", function(sText) {
                        return (sText || "").toUpperCase().indexOf(value.toUpperCase()) > -1;
                    })
                ], false)
            ];
        }

        this.oSF.getBinding("suggestionItems").filter(filters);
        this.oSF.suggest();
    }

谁能帮我解决这个问题?

【问题讨论】:

    标签: xml filtering sapui5


    【解决方案1】:

    odata 服务存在时间问题,建议弹出。它以前也被我发现了。从技术上讲,建议框在 oData 完成之前打开,这就是示例代码起作用的原因 - 它是一个 JSON 模型。我的解决方案看起来像这样

     var search = this.byId('searchField');
     var binding = search.getBinding("suggestionItems");
    
     binding.filter(filters);
     binding.attachEventOnce('dataReceived', _ => search.suggest());
    

    【讨论】:

      猜你喜欢
      • 2021-01-30
      • 1970-01-01
      • 2017-01-26
      • 1970-01-01
      • 2015-01-22
      • 2017-10-22
      • 2017-02-22
      • 1970-01-01
      • 2011-12-04
      相关资源
      最近更新 更多