SAPUI5在运行时将operationMode更改为client

SAPUI5在运行时将operationMode更改为client,sapui5,Sapui5,我正在项目中使用SmartTable 我需要在开始时从后端请求一些数据,然后在前端处理接收到的数据 根据数据,我需要从后端发送一些过滤器 因此,我需要在开始操作模式时将服务器更改为客户端,然后在数据到达后将其更改为Client 我的SmartTableXML 可重新绑定的 onBeforeRebindTable:函数(oEvent){ console.log(“onBeforeRebindTable”); var oBindingParams=oEvent.getParameter(“bin

我正在项目中使用SmartTable

我需要在开始时从后端请求一些数据,然后在前端处理接收到的数据

根据数据,我需要从后端发送一些过滤器

因此,我需要在开始操作模式时将服务器更改为
客户端,然后在数据到达后将其更改为
Client

我的SmartTableXML


可重新绑定的

onBeforeRebindTable:函数(oEvent){
console.log(“onBeforeRebindTable”);
var oBindingParams=oEvent.getParameter(“bindingParams”);
oBindingParams.filters.push(新的sap.ui.model.Filter(“Prop”、“EQ”、“Value”);
},
在onInit中,我设置listener,以在接收数据后更改操作模式

var-oTable=this.getView().byId(“ReportSmartTable”)//抓住表格控件
attachDataReceived(函数(oEvent){//在从后端服务器接收数据时命中
this.getModel().defaultOperationMode=“Client”//将操作模式设置为Client
var oSource=oEvent.getSource();
oSource.bClientOperation=true;//将客户端操作设置为true
oSource.sOperationMode=“Client”//将操作模式设置为Client
}.约束(这个);
我还尝试通过以下方式更改操作模式

this.getOwnerComponent().getModel().sDefaultOperationMode=“Client”;
this.getOwnerComponent().getModel().defaultOperationMode=“Client”;
this.getModel().sDefaultOperationMode=“Client”//将操作模式设置为客户端
此.getModel().defaultOperationMode=“客户端”//将操作模式设置为客户端
但它不起作用

若我在收到数据后进行一些过滤,那个么仍然会有对后端的请求


通过从开始创建
Client
operationMode,在请求之前会调用
onBeforeRebindTable
,但过滤器不会随
batch
一起发送,您无法在创建模型后更新操作模式。即使更新了private属性
sDefaultOperationMode
,也不会影响现有绑定

您可以为每个绑定指定
操作模式
,例如在列表中:

<List items="{path:'/myset',parameters:{operationMode:'Client'}}" ...>

并使用以不同的操作模式重新创建绑定


但是,对于
SmartTable
,您必须修改内部表绑定,这可能会破坏很多东西,因此不鼓励这样做。可能智能表不是最适合您的用例。

是否有办法在
客户端
操作模式下,在初始请求时向后端发送筛选器?我不这么认为。