Datenbindung von Tisch zu dialog + update-Daten aus dem Dialogfeld Tabelle SAPUI5
Habe ich die folgende Funktion, die ein Teil des dialogs (wo Daten soll die Bindung mit den Daten einer Tabelle):
handleChangeRow : function() {
var oTable = sap.ui.getCore().getElementById('WorkOrder');
var oModel2 = oTable.getModel("test");
//var oModel2 = oTable.getModel();
console.log("oModel2 : " + oModel2);
var odata = oModel2.getProperty("/workorderdata");
console.log("odata : " + odata);
var selIndex = oTable.getSelectedIndex();
var selectedDataObject = odata[selIndex];
var oDialog = new sap.ui.commons.Dialog("Dialog", {
modal : true,
closed : function(oControlEvent) {
sap.ui.getCore().getElementById('Dialog').destroy();
}
});
oDialog.setTitle("Change Work Order");
var oLayout = new sap.ui.commons.layout.MatrixLayout( {
columns : 3,
width : "100%"
});
var oTF = new sap.ui.commons.TextField("scopeITRequestCode", {
tooltip : 'ScopeIT Request Code',
editable : true,
width : '200px',
value: "{test>/workorderdata/0/scopeITRequestCode}"
});
var oLabel = new sap.ui.commons.Label("lbscopeITRequestCode", {
text : 'ScopeIT Request Code',
labelFor : oTF
});
oLayout.createRow(oLabel, oTF);
}
mit value: "{test>/workorderdata/0/scopeITRequestCode}"
mit "test"
id das Modell, das ich versuche in Modell-Daten:
success : function(data) {
this.model = new sap.ui.model.json.JSONModel();
this.model.setData({
workorderdata: data
});
sap.ui.getCore().setModel(this.model, "test");
}
welche gut funktioniert, aber nur für einzelne textfield. wie kann ich das ändern Referenz "test>/workorderdata/0/scopeITRequestCode"
also änderungen werden dynamisch sind, und Benutzer können alle text-Felder? mit anderen Worten, wie bind-Wert der ausgewählten Zelle der Zeile in der Tabelle mit dem Wert von text-Feld im dialog?
InformationsquelleAutor user3189516 | 2014-01-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Finden Sie die Parameter übergeben, um die
rowSelectionChange
Veranstaltung finden Sie hier:https://openui5.hana.ondemand.com/#docs/api/symbols/sap.ui.table.Table.html#event:rowSelectionChange
Gesagt haben, dass, und vorausgesetzt, dass dialog bindet an das gleiche Modell, als Ihr der Tabelle ist der code wohl etwa so Aussehen:
Leider bin ich mir nicht sicher, wie Sie den Modell-Namen, aber Sie würde wahrscheinlich auch in Ordnung sein, wenn du weglassen, der name des Modells in der Bindung und Nutzung
setModel
stattdessen ein wenig mehr Dynamik:Seit dem Textfeld und der Tabelle gebunden sind, gegen das gleiche Modell ein update der das Feld aktualisiert wird, steuert. Was Sie versuchen, zu erreichen, mit dem TextField ist eine so genannte TwoWayBinding (Hole einen Wert aus dem Modell ("OneWay") und schreiben Sie zurück, wenn Sie geändert (TwoWay)), die z.B. eine ODataModel nicht unterstützt. Sie können überprüfen, wie diese:
Mehr details hier auf der Bindung und die Bindung Modi hier:
https://openui5.hana.ondemand.com/#docs/guide/Introduction.1.html
https://openui5.hana.ondemand.com/#docs/api/symbols/sap.ui.model.BindingMode.html
https://openui5.hana.ondemand.com/#docs/api/symbols/sap.ui.model.Model.html#isBindingModeSupported
GL
Chris
gut, Sie könnten markieren Sie die Antwort, die Fragen richtig, wenn es geholfen hat 🙂
InformationsquelleAutor cschuff