在这里,我选择了第2行和第5行,我还在突出显示的部分中有一个名为Send Requests的按钮。如果我单击此按钮,它将调用javascript控制器函数,该函数在应用程序的扩展中定义。在这个js函数中,如何检索所选的选定行?
我已通过提及此代码启用了此页面中的复选框
在manifest.json中"设置":{" gridTable":false," multiSelect":true}
正如此链接https://sapui5.netweaver.ondemand.com/#docs/guide/116b5d82e8c545e2a56e1b51b8b0a9bd.html
所推荐的那样我想知道如何检索已选择的行?
答案 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();