如何检索在智能模板的列表报告页面中选择的行

时间:2017-03-14 14:43:17

标签: sapui5 sap-fiori

这是智能模板应用程序的列表报告类型 enter image description here

在这里,我选择了第2行和第5行,我还在突出显示的部分中有一个名为Send Requests的按钮。如果我单击此按钮,它将调用javascript控制器函数,该函数在应用程序的扩展中定义。在这个js函数中,如何检索所选的选定行?

我已通过提及此代码启用了此页面中的复选框

在manifest.json中

"设置":{" gridTable":false," multiSelect":true}

正如此链接https://sapui5.netweaver.ondemand.com/#docs/guide/116b5d82e8c545e2a56e1b51b8b0a9bd.html

所推荐的那样

我想知道如何检索已选择的行?

3 个答案:

答案 0 :(得分:2)

  

在这种类型的表中有方法。

var myTable=sap.ui.getCore().byId("your table id");

获取所有行:

var myTableRows=myTable.getRows();

现在获得选定的指数

var selectedIndeices=myTable.getSelectedIndices(); //this will give you array of indeices.

现在在indeices数组上运行循环。得到特定的行项; //获取绑定路径

 var bindingpath=myTableRows[2].getBindingContext().sPath; // this will return eg:"/ProductCollection/2"

//现在获取该特定行的Binding对象。

var myData=myTableRows[2].getModel().getObject(bindingpath); // this will return binding object at that perticular row.

//一旦你的循环结束,你将拥有所选行的所有对象。然后做你想做的事。

答案 1 :(得分:1)

您可以将一个API用于您的用例。这里描述:https://sapui5.netweaver.ondemand.com/#docs/guide/bd2994b69ef542998becbc69ab093f7e.html

基本上,您只需要调用getSelectedContexts方法即可。遗憾的是,您将无法真正获取项目本身,只能获取绑定上下文(指向所选的数据实体)。摘自文档:

  

定义了视图扩展后,您可以访问和修改   这些扩展中定义的所有UI元素的属性(for   例如,更改可见性)。 但是,您无法访问任何UI   未在视图扩展程序中定义的元素。

答案 2 :(得分:1)

如果您使用智能模板,请创建扩展程序。

这是表重新绑定之前的标准事件:

onBeforeRebindTableExtension: function (oEvent) {
            this._table = oEvent.getSource().getTable();
        }

在您的动作函数中(或您想要的地方)调用表并获取上下文:

this._table.getSelectedContexts();