Sapui5 如何在sap.m.SelectDialog中进行oData客户端筛选?
我正在使用Sapui5 如何在sap.m.SelectDialog中进行oData客户端筛选?,sapui5,Sapui5,我正在使用sap.m.SelectDialog和sap.ui.model.odata.v2.ODataModel,在SelectDialog中搜索的实现如下 handleSearch将触发EntitySet的substringof方法,但我们的oData服务没有实现substringof,skip,top 所以我的问题是,既然前端已经获得了全部数据,我可以在客户端进行过滤吗 我试图在handleSearch中设置DefaultOperationMode: this.\u oModel.sDef
sap.m.SelectDialog
和sap.ui.model.odata.v2.ODataModel
,在SelectDialog中搜索的实现如下
handleSearch
将触发EntitySet的substringof
方法,但我们的oData服务没有实现substringof
,skip
,top
所以我的问题是,既然前端已经获得了全部数据,我可以在客户端进行过滤吗
我试图在
handleSearch
中设置DefaultOperationMode:
this.\u oModel.sDefaultOperationMode=“Client”代码>
不工作
还尝试直接操作模型中的数据,但这。_oModel.oData没有返回全部数据。但当我向下滚动时,会添加新项目,而不会触发新的GET。对此感到非常困惑
顺便说一句,如果可以做到这一点,如何在选择对话框中隐藏搜索框
,似乎没有提供相应的方法。感谢@Medera,找到了一种优雅的方法:
items="{
path: '/PackageSet',
parameters: {operationMode: 'Client'}
}">
还将我的问题标记为重复
@不推荐
感谢@Jorg,通过将oData模型更改为JSON模型修复了此问题:
this._oModel.read("/PackageSet", {
success: this.successGetPackgeCallback.bind(this),
error: this.errorCallback.bind(this)
});
successGetPackgeCallback: function(oResult) {
var oModel = new JSONModel(oResult.results);
this.selectDialog.setModel(oModel);
},
OData模型是服务器端模型,这意味着数据集仅在服务器上可用,而客户端只知道当前可见(请求的)数据。排序和筛选等操作在服务器上完成
JSON模型是一个客户端模型,因此适用于小型数据集,这些数据集在客户端完全可用
感谢@Medera,找到了一种优雅的方式:
items="{
path: '/PackageSet',
parameters: {operationMode: 'Client'}
}">
还将我的问题标记为重复
@不推荐
感谢@Jorg,通过将oData模型更改为JSON模型修复了此问题:
this._oModel.read("/PackageSet", {
success: this.successGetPackgeCallback.bind(this),
error: this.errorCallback.bind(this)
});
successGetPackgeCallback: function(oResult) {
var oModel = new JSONModel(oResult.results);
this.selectDialog.setModel(oModel);
},
OData模型是服务器端模型,这意味着数据集仅在服务器上可用,而客户端只知道当前可见(请求的)数据。排序和筛选等操作在服务器上完成
JSON模型是一个客户端模型,因此适用于小型数据集,这些数据集在客户端完全可用
在bindAggregation内部应用参数:{operationMode:sap.ui.model.odata.operationMode.Client}应该可以工作。在bindAggregation内部应用参数:{operationMode:sap.ui.model.odata.operationMode.Client}应该可以工作。