在sap.m.List中获取按下的StandardListItem的索引

2020-09-03 11:05发布

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

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


大家好,

我正在尝试将MVC模式用于SAPUI5,并且大部分事情都在起作用。 我有一个XMLView,它绑定一个分配给" DS"名称的JSONModel,该JSONModel具有如下数据:

 {
 磁贴:[{标题:"标题A"},{标题:"标题B"},...],
 otherProperty:[...]
 }
 

在我看来,XML能够将数据绑定到sap.m.List,如下所示:

 
   
   <工具栏>
   <标题文本="标题"级别=" H1"/>
   
   

我的问题是您可以看到我有一个分配给StandardListItem模板的tileDetail处理程序。 这可以正确触发,但是我需要确定它所在的tile数组中的位置(JSON结构中没有键可依赖)。

我一直在玩各种各样的bindingContext东西,我可以得到一个PATH但没有它的索引...有什么想法吗?

 tileDetail:函数(oControlEvent){
   var oItem = oControlEvent.getSource();
   var oCtx = oItem.getBindingContext(" DS");
   var path = oCtx.getPath(); //返回/tiles/0
   alert(oCtx.getProperty(" header")); //返回"标题A"
   尝试{
   this.getRouter()。navTo(" tiles",{
   索引://??? 我如何传递0、1、2等???
   });
   }抓住{e} {
   alert("错误导航:" + e);
   }
   
   },
 

我希望我只是做错了什么,有一种简单的方法可以将索引传递给路由器(我的最终目标)-当然,我不必做一些低技术的事情,例如在路径上分割字符串 基于斜线等?

感谢您的帮助!

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

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


大家好,

我正在尝试将MVC模式用于SAPUI5,并且大部分事情都在起作用。 我有一个XMLView,它绑定一个分配给" DS"名称的JSONModel,该JSONModel具有如下数据:

 {
 磁贴:[{标题:"标题A"},{标题:"标题B"},...],
 otherProperty:[...]
 }
 

在我看来,XML能够将数据绑定到sap.m.List,如下所示:

 
   
   <工具栏>
   <标题文本="标题"级别=" H1"/>
   
   

我的问题是您可以看到我有一个分配给StandardListItem模板的tileDetail处理程序。 这可以正确触发,但是我需要确定它所在的tile数组中的位置(JSON结构中没有键可依赖)。

我一直在玩各种各样的bindingContext东西,我可以得到一个PATH但没有它的索引...有什么想法吗?

 tileDetail:函数(oControlEvent){
   var oItem = oControlEvent.getSource();
   var oCtx = oItem.getBindingContext(" DS");
   var path = oCtx.getPath(); //返回/tiles/0
   alert(oCtx.getProperty(" header")); //返回"标题A"
   尝试{
   this.getRouter()。navTo(" tiles",{
   索引://??? 我如何传递0、1、2等???
   });
   }抓住{e} {
   alert("错误导航:" + e);
   }
   
   },
 

我希望我只是做错了什么,有一种简单的方法可以将索引传递给路由器(我的最终目标)-当然,我不必做一些低技术的事情,例如在路径上分割字符串 基于斜线等?

感谢您的帮助!

付费偷看设置
发送
9条回答
哎,真难
1楼 · 2020-09-03 11:35.采纳回答

列表的二手方法indexOfItem

类似的代码可能会起作用,oItem.getParent()。indexOfItem(oItem)

樱桃小丸子0093
2楼-- · 2020-09-03 11:40

谢谢这个建议!! 为我工作!

小c菟菟
3楼-- · 2020-09-03 12:02

这是我的代码示例:

onBelegDeleteButtonPress:function(oEvent){//当我按下列表项时调用

var oSelectedItem = oEvent.getParameter('listItem'); //获取ListItem

var sPath = oSelectedItem.getBindingContext()。getPath(); //获取项目绑定到的路径

var iSelectedItemIndex = parseInt(sPath.substring(sPath.lastIndexOf('/')+ 1)); //获取列表项的索引

返回iSelectedItemIndex;

},

SAP浪
4楼-- · 2020-09-03 11:50

您可能是对的。 据我所知,我从未将ODataModel绑定到视图,但是OData确实具有.toJSON()或一些类似的方法。

但幸运的是,他使用了JSONModel????

wang628962
5楼-- · 2020-09-03 12:02

嗨,迈克,

这对我有用。 您可以尝试一下。

var table = this.getView()。byId(" ShortProductList"); var rowItems = table.getSelectedItems(); var selectedval = rowItems [0] .mBindingInfos.title.binding.oValue;

ShortProductList是列表ID。


谢谢

Geetha Rani。

d56caomao
6楼-- · 2020-09-03 11:57

这适用于标准列表项????..尝试一次..对我有用。

clasier
7楼-- · 2020-09-03 11:59

嗨,迈克,

您可以绑定StandardListItem的'title'和'description'属性。 一个带有键,另一个带有文本。 然后,您可以尝试

oControlEvent.getSource()。getTitle()和oControlEvent.getSource()。getDescription()。


BR。

一周热门 更多>