SAPUI5搜索字段建议自动完成

陈永汉

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

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

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();
    }

有人可以帮我吗?

豪尔格

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

 var search = this.byId('searchField');
 var binding = search.getBinding("suggestionItems");

 binding.filter(filters);
 binding.attachEventOnce('dataReceived', _ => search.suggest());

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章