SAPUI5 не может получить значение ячейки, редактируемое таблицей
Я пытаюсь получить значение ячейки редактируемого столбца по нажатию кнопки, но я получаю все выбранные значения строки, кроме значения редактируемого столбца.
Пожалуйста, дайте мне знать, как я могу получить значение.
Ниже мой код:
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})
}));
Здесь номер мобильного телефона - это моё редактируемое поле, которое конечный пользователь может заполнить в таблице.
У меня есть кнопка, и по нажатию кнопки я пытаюсь получить выбранные значения строк, как показано ниже:
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());
}
}
});
Теперь вышеуказанный код возвращает меня только до PIN-кода.
Как я могу получить значение редактируемой ячейки.
заранее спасибо
1 ответ
Я не думаю, что это как-то связано с тем, что ячейка редактируема.
В то время как "TextView" имеет "getText()" для получения значения, "TextField" имеет "getValue()".
Смотрите ссылку на документацию здесь.
Либо вы изменяете 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".