Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sapui5 如何在sap.m.SelectDialog中进行oData客户端筛选?_Sapui5 - Fatal编程技术网

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}应该可以工作。