如何在没有实际选择sapui5中的表行的情况下获取行详细信息

时间:2014-02-06 10:20:10

标签: jquery sapui5

我在sapui5中创建了一个表,其中数据从后端填充,即SAP Gateway。我在表中添加了一个包含链接的列。每行都有一个链接。如果我点击该链接,则会打开一个弹出框。 我想传递在弹出框中选中其链接的同一行的其他列的详细信息。为了获得细节,我需要该行的索引,我不知道。

如何实现它?

3 个答案:

答案 0 :(得分:1)

您可以使用getSource()getParent()方法来控制层次结构,如下所示:

function linkPressListener(oEv) {
   // get event source -> the link
   var link = oEv.getSource();
   // walk up the control hierarchy until you reach the table row (1st parent should be column, 2nd the row)
   var row = link.getParent().getParent();

   // get the rows index
   var index = row.getIndex();

   // get row context from the table
   var myTable = sap.ui.getCore().byId("myTablesID"); 
   myTable.getContextByIndex(index);

   // open your dialog using the rows context
   ...
}

无论如何,依赖于这样的层次结构对我来说似乎有点脆弱,我希望看到一个更优雅的例子。

答案 1 :(得分:1)

我或多或少有相同的问题,但使用RowRepeater控件而不是Table。看看https://stackoverflow.com/a/21600210/3270057

提供的答案Jasper_07

这将使您可以访问当前绑定上下文属性或整个对象

希望这有帮助!

答案 2 :(得分:0)

获取已绑定到表格的模型

var model=that.getView().getModel("ModelName"); var path = evt.getSource().getParent().getBindingContextPath(); var data=model.getProperty(path);

数据应该包含您绑定到该行的对象,并包含您需要的所有值。