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

问题描述 投票:0回答:2

几个小时后,我正在尝试获取树表的选定行的模型数据。

我用这个例子: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]]
}

似乎当我使用分拣机和过滤器功能时,索引不再正确。索引键不会改变。

任何想法如何解决我的要求?提前thx!

javascript sapui5
2个回答
0
投票

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

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

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

  1. 从模型中获取数据:

oTreeTable.getModel().getProperty(sPath)


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;
© www.soinside.com 2019 - 2024. All rights reserved.