首页 > 解决方案 > 输入框中的 SAP UI5 实时搜索不起作用

问题描述

我按照这个例子,https://sapui5.hana.ondemand.com/sdk/#/entity/sap.m.Input/sample/sap.m.sample.InputAssisted开发了一个类似的功能,但是我的输入框在我写的时候没有填充也没有搜索。当我按下帮助对话框按钮时,会列出所有值,但我无法在其中搜索。

代码如下: View.xml:

<Input
    id="productInput"
    type="Text"
    placeholder="Enter Product ..."
    showSuggestion="true"
    valueHelpRequest="handleValueHelp"
    showValueHelp="true"
    suggestionItems="{AgrName}" >
    <suggestionItems>
        <core:Item text="{AgrName}" />
    </suggestionItems>
</Input>

在 Controller init 函数中将 Odata 转换为 JSON

var oModel = new sap.ui.model.odata.ODataModel("/sap/opu/odata/sap/ZGETJOBROLES_SRV/", true);

oModel.setSizeLimit(100000);
this.getView().setModel(oModel);

var jsonModel = "";
oModel.read("/DefineRolesTableSet", null, null, false, function(oData, oResponse) {
    jsonModel = oData;

});

var jData = new sap.ui.model.json.JSONModel(jsonModel);

this.getView().setModel(jData, "dataModel");
console.log(jData);     

处理值帮助函数

handleValueHelp: function(oEvent) {

    var sInputValue = oEvent.getSource().getValue();

    this.inputId = oEvent.getSource().getId();
    //sInputValue.getModel().getJSON(); 
    // create value help dialog
    if (!this._valueHelpDialog) {
        this._valueHelpDialog = sap.ui.xmlfragment(
            "JobRoleSearch.View.Dialog",
            this
        );
        this.getView().addDependent(this._valueHelpDialog);
    }

    // create a filter for the binding

    this._valueHelpDialog.getBinding("items").filter([new Filter(
        "AgrName",
        sap.ui.model.FilterOperator.Contains, sInputValue
    )]);

    // open value help dialog filtered by the input value
    this._valueHelpDialog.open(sInputValue);
}

console.log 的结果

我的意图是在客户端搜索,而不是在服务器端搜索,这就是我将 oData 转换为 JSON 的原因。如果有任何错误,请告诉我。

问候

标签: odatasapui5

解决方案


如果您是 SAPUI5 的新手,有一些免费的 OpenSAP 课程,您可以在其中观看一些教程并积极在此处输入链接描述,我猜您的模型有问题,请尝试suggestionItems="{/AgrName}"。下面是一个绑定本地 json 模型的例子:

  1. 清单.json

    "mainService": {
            "uri": "",
            "type": "OData",
            "settings": {
                "odataVersion": "2.0",
                "localUri": "localService/metadata.xml"
            }
        },
        "resource": {
            "type": "JSON",
            "uri": "model/Resources.json"
        },
        "location": {
            "type": "JSON",
            "uri": "model/Locations.json"
        }
    
  2. json文件:

    {“资源”:[{“ID”:1,“名称”:“TitMLocations”,“编号”:0,“ValueColor”:“好”,“图标”:“sap-icon://building”,“ LocationType":"" }, { "ID": 2, "Name": "TitMCar", "Number": 0, "ValueColor":"Good", "Icon": "sap-icon://car-rental " }, { "ID": 3, "Name": "TitMEquipment", "Number": 0, "ValueColor":"Good", "Icon": "sap-icon://add-equipment" }] }

  3. XML 绑定

    项目="{资源>/资源}


推荐阅读