odata - 输入框中的 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);
}
我的意图是在客户端搜索,而不是在服务器端搜索,这就是我将 oData 转换为 JSON 的原因。如果有任何错误,请告诉我。
问候
解决方案
如果您是 SAPUI5 的新手,有一些免费的 OpenSAP 课程,您可以在其中观看一些教程并积极在此处输入链接描述,我猜您的模型有问题,请尝试suggestionItems="{/AgrName}"
。下面是一个绑定本地 json 模型的例子:
清单.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" }
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" }] }
XML 绑定
项目="{资源>/资源}
推荐阅读
- java - 由于线程问题导致的 IllegalStateException
- python - 按下按钮时在 Kivy 应用程序中运行 Flask 应用程序
- mysql - 执行存储在列中的 SQL 查询时出现 MYSQL 错误
- webstorm - 如何在 WebStorm 的运行/调试中设置 pnpm
- html - CSS父背景颜色未填充子容器
- bash - 有没有办法接受以前的论点?
- python - Django/Python。在对象列表中转换的 QuerySet 数据转换元组中的 str/int 值
- java - 当我们说实例时,我们是什么意思?
- python - firebase=firebase(config) TypeError: 'module' object is not callable
- python - selenium 与 python 列出了一个优秀的列表