Sapui5 如何从控制器中的数据绑定中获取1项?

Sapui5 如何从控制器中的数据绑定中获取1项?,sapui5,Sapui5,我有一个通过数据绑定填充数据的表。现在在我的控制器中,我试图循环所有的数据绑定项。这是我目前所拥有的,但我无法让它发挥作用 colorRows : function(oTable) { var items = oTable.getBinding("items"); var rowCount = items.length; //number of visible rows var currentRowContext; for (var i = 0; i < r

我有一个通过数据绑定填充数据的表。现在在我的控制器中,我试图循环所有的数据绑定项。这是我目前所拥有的,但我无法让它发挥作用

colorRows : function(oTable) {
    var items = oTable.getBinding("items");
    var rowCount = items.length; //number of visible rows
    var currentRowContext;
    for (var i = 0; i < rowCount; i++) {
        currentRowContext = items[i].getValue(); //this won't work
    }
}
colorRows:函数(可旋转){
var items=oTable.getBinding(“items”);
var rowCount=items.length;//可见行数
var-currentRowContext;
对于(变量i=0;i
所以我需要从索引与i匹配的项中获取一个值


编辑:我正在使用sap.m.table

我假设您使用的是
sap.m.table

colorRows:函数(可旋转){
var sPath=oTable.getBinding(“items”).getPath();//表数据的路径
var oModel=this.getView().getModel();//绑定到表的模型
//或者var oModel=oTable.getModel();如果模型直接绑定到表
var aData=oModel.getProperty(sPath);//行数组
var rowCount=aData.length;
var-currentRowContext;
对于(变量i=0;i

是一个工作示例。

正如Keshet提到的,它取决于您使用的表。下面是
sap.ui.table.table
的示例。首先获取每一行的上下文,然后可以访问保存在该行上的数据(顺便说一句,没有RowValue):

colorRows:函数(可旋转){
var aRows=oTable.getRows();
var-currentRowValue;
for(var i=0;i
项目[i]是否可能不起作用?我得到错误UncaughtTypeError:无法读取未定义的属性“getCells”。项目中有数据,但项目[i]导致未定义。@如果我的错误,我已更新了答案。很抱歉误导您。现在是oModel.getProperty(sPath)不起作用了。我得到错误:UncaughtTypeError:无法读取未定义的属性'length'。其中aData未定义。sPath是使用值/InvoiceSet定义的。这意味着您必须正确获取绑定到表的模型。我不知道您是如何定义模型的-您没有发布这部分代码。正如您在这张图片上看到的:,我认为模型接收正确。还是我看错了?
colorRows: function(oTable) {
 var aRows = oTable.getRows();
 var currentRowValue;
 for (var i = 0; i < aRows.length; i++) {
  var oRowContext = oTable.getContextByIndex(i);
  if (oRowContext) {
   var oRowObject = oRowContext.getObject();
   // or you can use the getProperty method
   var oSingleValue = oRowContext.getProperty("yourPropertyName");
  }
 }
}