SAPUI5 无法获取 table editable 单元格值

SAPUI5 unable to get table editable cell value

我试图在单击按钮时获取 editable 列的单元格值,但我得到的是除 editable 列值之外的所有选定行值。

请告诉我如何获得该值。

下面是我的代码:

var oTable = new sap.ui.table.Table({
    sId: "Master Table",
    selectionMode : sap.ui.table.SelectionMode.Multi,
    selectionBehavior: sap.ui.table.SelectionBehavior.Row,
    enableCellFilter : true
  });

// define the Table columns and the binding values
  oTable.addColumn(new sap.ui.table.Column({
    label: new sap.ui.commons.Label({text: "ID"}),
    template: new sap.ui.commons.TextView({text:"{ID}",editable : false,filterProperty: "ID"})
  }));

oTable.addColumn(new sap.ui.table.Column({
    label: new sap.ui.commons.Label({text: "Name"}),
    template: new sap.ui.commons.TextView({text:"{NAME}",editable : false})
  }));

oTable.addColumn(new sap.ui.table.Column({
    label: new sap.ui.commons.Label({text: "Address"}),
    template: new sap.ui.commons.TextView({text:"{ADDRESS}",editable : false})
  }));

oTable.addColumn(new sap.ui.table.Column({
    label: new sap.ui.commons.Label({text: "PIN CODE"}),
    template: new sap.ui.commons.TextView({text:"{PIN_CODE}",editable : false})
  }));

oTable.addColumn(new sap.ui.table.Column({
    label: new sap.ui.commons.Label({text: "Mobile Number"}),
    template: new sap.ui.commons.TextField({text:"",editable : true})
  }));

这里的手机号码是我的editable字段,最终用户可以填写table.

我有一个按钮,单击该按钮我试图获取选定的行值,如下所示:

oButtonUpdate.attachPress(function(){
    if(oTable.getSelectedIndices().length==0){
        sap.ui.commons.MessageBox.alert("No Row Selected");
        return;
    }
    for(var i = 0; i < oTable.getSelectedIndices().length; i++){
        for(j=0;j<4;j++){
            alert(oTable.getRows()[oTable.getSelectedIndices()[i]].getCells()[j].getText());
        }
    }

});

现在上面的代码只有returns我直到PIN码。

如何获取 editable 单元格的值。

提前致谢

我认为这与单元格是否可编辑无关。

虽然 "TextView" 有 "getText()" 检索值,但 "TextField" 有 "getValue()"。

查看文档 link here

要么将 TextField 更改为 TextView(如果可能),要么将循环调整为以下代码段:

for(j=0;j<4;j++){
    var oControl = oTable.getRows()[oTable.getSelectedIndices()[i]].getCells()[j];
    if (oControl.getText) {
        alert(oControl.getText());
    }
    else if (oControl.getValue) {
        alert(oControl.getValue());
    }
}

"else if" 部分是可选的,因为在这种情况下 "else" 就足够了。