OpenUI5树表:获取选定的行及其模型数据

时间:2019-03-05 17:48:10

标签: javascript sapui5

几个小时以来,我一直在尝试获取树表中选定行的模型数据。

我使用了以下示例:https://openui5.hana.ondemand.com/#/sample/sap.ui.table.sample.TreeTable.JSONTreeBinding/preview

此外,我在列中添加了sortProperty和filterProperty。到目前为止,一切正常。

我想要做的是通过所有选定行的ajax提交json数据。为此,我需要获取所选行的json数据。

我尝试过的事情:

var oTable = this.getView().byId("tableName").getSelectedIndicies()

然后

for(var i=0; i<=oTable.length; i++) { 
  this.getView().byId("tableName").getModel().getData().jobs[oTable[i]]
}

似乎当我使用排序器和过滤器功能时,指示不再正确。索引键不会更改。

有什么办法解决我的要求吗?提前谢谢!

2 个答案:

答案 0 :(得分:0)

您可以进行一些小的更改,以在for循环中获取正确的数据。

  1. 获取根据索引信息选择的项目的bindingContext。
  

var sPath = TreeTable.getRows()[0].getBindingContext()

  1. 通过以下方式从模型中获取数据:
  

oTreeTable.getModel().getProperty(sPath)

答案 1 :(得分:0)

这是我解决的方法:

var oJSON = {};
var aData = [];
var oTable = this.getView().byId("TreeTable");
var aIndicies = oTable.getSelectedIndices();
var oSelect = this.getView().byId("selectStandort").getSelectedKey();
for (var i=0; i<aIndicies.length; i++) {
    var oTableContext   = oTable.getContextByIndex(aIndicies[i]);
    var rowData         = oTable.getModel("jobs").getProperty(oTableContext.getPath());
    aData.push(rowData);
}

oJSON.jobs = aData;
oJSON.standort = oSelect;