SAP UI5 Live Search в поле ввода не работает - PullRequest
0 голосов
/ 19 марта 2020

Я последовал этому примеру, https://sapui5.hana.ondemand.com/sdk/# / entity / sap.m.Input / sample / sap.m.sample.InputAssisted , чтобы разработать аналогичную функциональность, но поле ввода не заполняется и не ищу как я пишу. Когда я нажимаю кнопку диалогового окна справки, все значения отображаются в списке, но я не могу искать в них.

Код указан ниже: Просмотр. xml:

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

Преобразование данных в 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

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. Если есть какая-либо ошибка, пожалуйста, дайте мне знать.

С уважением

1 Ответ

0 голосов
/ 19 марта 2020

Если вы новичок в 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 файл:

    {"Resource": [{"ID": 1, "Name": "TitMLocations", "Number": 0, "ValueColor": "Good", "Icon": "sap-icon: // building "," LocationType ":" "}, {" ID ": 2," Name ":" TitMCar "," Number ": 0," ValueColor ":" Good "," Icon ":" sap-icon : // прокат авто "}, {" ID ": 3," Имя ":" TitMEquipment "," Number ": 0," ValueColor ":" Good "," Icon ":" sap-icon: // add -оборудование "}]}

  3. XML Связывание

    items =" {resource> / Resource}

...