智能表绑定和重新绑定(带有过滤器)的问题

2020-08-26 04:48发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我有一个页面页面,该页面带有3个...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我有一个页面页面,该页面带有3个单选按钮和下面的一个智能表。 当我们登陆页面时,第一个单选按钮选项被选中,并且该选择的数据被获取并显示在表格中。 但是,当我更改单选按钮选择时,将获取新数据,并且可以在表中看到它,但是忙碌指示器不会停止并且看起来正在缓冲。 另外,在网络中,我看到了多个调用(即使是第一次进入页面,现在也发生了,即使我只执行一次,也看到了2个Odata调用)。 我已经编写了onBeforeRebindTable方法,其中传递了过滤器。 在我的OData请求中,我也想通过过滤器来获取数据,否则查询将不正确,并且我也不会从后端获取任何数据。 因此,在调用请求时必须通过过滤器。 但是以某种方式,这还不够,我需要在beforeRedbindTable方法中提及相同的过滤器,否则数据来自后端,但不会显示在表中。

除了我更改的第二个过滤器属性之外,用于获取任何单选按钮选择上的数据的代码如下:

 anyRadioButtonSelected:function(){
 var oModel,oView;
 var oFilters = [];
 oFilters.push(新sap.ui.model.Filter("别名",sap.ui.model.FilterOperator.EQ,"名称"));
 oFilters.push(新sap.ui.model.Filter(" RadioButtonOptionX",sap.ui.model.FilterOperator.EQ," X"));
 var that = this;
 oModel = new sap.ui.model.odata.ODataModel("/img/sap/opu/odata/sap/service_name/",false);
 oModel.read("/img/userSet",{
           异步:是的,
           过滤器:oFilters,
 成功:功能(oData,oResponse){
 sap.m.MessageToast.show("已提取数据");
 },
 错误:function(err){
 sap.m.MessageToast.show("数据提取错误");
 }
 });
 oModel.setCountSupported(false);
 oView = this.getView();
 oView.setModel(oModel);
 

smartTable.view.xml:

 
 

我已经给出了beforeRebindTable方法并在其中提到了过滤器。 如果我在这里没有提到过滤器,则由于某种原因该表将保持为空并且不会填充数据。 如果我删除了beforeRebindTable方法-表仍然为空。

我有以下疑问:

a)当我在主oData调用中已经提到过滤器时,为什么必须在beforeRebindTable中提及过滤器。
b)当我第一次使用默认选中单选按钮进入页面时,看到2个呼叫。
1)解码的通话1:sap/opu/odata/sap/service_name/userSet?$ filter = Alias eq'random'和RadioButtonOptionX eq'X'

2)解码的调用2:sap/opu/odata/sap/service_name/userSet?$ skip = 0&$ top = 139&$ filter = Alias eq'random'和RadioButtonOptionX eq'X'&$ select = FullName&$ inlinecount =所有页面

c)如何使忙碌的指标在表中停止(setBusy(false)和BusyIndi​​cator.hide())不起作用-我看到了背后的新数据,但忙碌不会停止。

4条回答
wang628962
2020-08-26 05:39

Jun Wu 谢谢您的答复。 我已经修改了我的代码,并在上面的评论中提到了。 我仍然面临问题,我认为这是因为我在onBeforeRebindTable中添加了默认过滤器。

一周热门 更多>