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