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");
}
}
}