如何在SAPUI5中将过滤的数据绑定回Model?

2020-09-01 20:52发布

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

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


嗨,

我将表格与以下模型绑定:

 var _jsonModel = new sap.ui.model.json.JSONModel();
 _jsonModel.setData(response.data.results);
 oTable.setModel(_jsonModel," myModel");
 

现在我要像下面那样过滤表格

 oTable = this.getView()。byId(" idTable");
 oTable.getBinding(" rows")。filter(aFilters,sap.ui.model.FilterType.Application);
 

在上面的代码中,我仅过滤并获取表的一个子集,但我想将此子集绑定回表。 所以我只想过滤,而是将表格绑定到过滤后的数据,有人可以建议我如何实现吗?

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

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


嗨,

我将表格与以下模型绑定:

 var _jsonModel = new sap.ui.model.json.JSONModel();
 _jsonModel.setData(response.data.results);
 oTable.setModel(_jsonModel," myModel");
 

现在我要像下面那样过滤表格

 oTable = this.getView()。byId(" idTable");
 oTable.getBinding(" rows")。filter(aFilters,sap.ui.model.FilterType.Application);
 

在上面的代码中,我仅过滤并获取表的一个子集,但我想将此子集绑定回表。 所以我只想过滤,而是将表格绑定到过滤后的数据,有人可以建议我如何实现吗?

付费偷看设置
发送
4条回答
SAP砖家
1楼 · 2020-09-01 21:41.采纳回答

所以只说出您的问题,而不是您想像的解决方案......

 for(var i = 0; i   
小熊yu生菜
2楼-- · 2020-09-01 21:47

有效,再次感谢!

我解释自己做过/尝试过的原因是……那里的人们不应觉得我只是在寻找一种简单的方法来获得解决方案,而无需花点时间。

我有一个问题,我知道这听起来很基础,但是请帮帮我。

通常,我进入控制台并键入对象,然后检查对象具有哪些功能或属性。 然后根据该IO尝试获取最终对象。 在将问题提交论坛之前,我做了同样的事情。 现在我的问题是,我们如何知道以下对象具有getObject()方法(如第2行中所示)? 我将第1行放在控制台中,下面是我所看到的(屏幕截图),但我没有使用getObject()方法。

1)oPrgTab.getContextByIndex(oSlctIndices [i])

2)oPrgTab.getContextByIndex(oSlctIndices [i])。getObject()

screen-shot-2019-09-27-at-35821-pm。 png

派大星 ヾ
3楼-- · 2020-09-01 21:44

不知道您在说什么...。

您的表格显示了过滤后的数据,为什么要绑定到 过滤数据?

我是小鹏鹏啊
4楼-- · 2020-09-01 21:28

让我解释一下我的问题。

1)我正在使用sap.ui.table.Table。

2)我有一个包含900条记录的表。

3)我选择此表中的第250和270行,并将这些记录提交到后端(使用oData方法),到目前为止没有问题。

4)现在,方案2:我根据一些条件过滤了900条记录,并获得了100条记录(在代码行下方)

 oTable.getBinding(" rows")。filter(aFilters,sap.ui.model.FilterType.Application); 

5)现在,我选择了过滤列表中的第3行和第5行,这就是问题所在。 下面的代码是我正在使用的。

 var oPrgTab = this.getView()。byId(" idProgTable");
 var oSlctIndices = oPrgTab.getSelectedIndices();
 var oSlctIndLen = oSlctIndices.length;

 for(var i = 0; i 
 

在上面的代码中,selectedIndices数组中包含3和5。 而oPrgTab.getBinding(" rows")具有所有900行。 现在,如果我使用最后一条语句来获取ProgramID,则会得到错误的结果。 我了解原因,但未能解决问题。 基本上,selectedIndices是从过滤的100条记录中提取rowIndex,而oPrgTab.getBinding(" rows")则具有全部900条记录。

一周热门 更多>