2016-06-29 7 views
0

Ich verwende ein geteiltes App-Layout zum Bearbeiten und Erstellen neuer Mitarbeiter. Deshalb habe ich einen Button "Mitarbeiter hinzufügen". Nachdem submitChanges erledigt ist, möchte ich diesen neuen Mitarbeiter in der Master-Liste finden und auswählen.Suchen Sie ein bestimmtes Element in der Master-Liste einer geteilten App mithilfe von oModel.createKey

Ich verwende einen Event-Bus für die Kommunikation zwischen Detail-Controller und Master-Controller.

fnAfterSubmitChangesSuccess: function(sChanel, sEvent, oData) {   
    var oResponseData = oData.__batchResponses[0].__changeResponses[0].data; 
    var sBindingPath = oModel.createKey("/EmployeeSet", {Begda: oData.Begda, Endda: oData.Endda, Pernr: oData.Pernr}).replace(/:\s*/g, "%3A");  
}, 

Gibt es eine Möglichkeit, den Index eines bestimmten Listeneintrags durch Verwendung des Bindungspfads zu finden. Oder gibt es eine andere Möglichkeit, dieses Problem zu lösen, anstatt die gesamte Liste zu durchlaufen und einen Vergleich durchzuführen?

Antwort

0

Ich fürchte, die einzige Möglichkeit, den Index eines bestimmten listItems nach Bindungspfad zu finden, besteht darin, die Auflistung der Listenelemente durchzugehen. Ich fürchte also, dass eine sehr einfache und kurze Antwort "Nein" wäre.

Es ist ziemlich einfach, obwohl Code nicht so lang ist, und es sollte auch nicht zu viel Leistung kosten, wenn Sie nicht über humongous Listen sprechen. Sie müssen jedoch durch die Liste der Elemente gehen. Sobald Sie den Artikel mit einer Bindung an den Kontextpfad Sie suchen gefunden haben, können Sie es auswählen setSelectedItem verwenden, etwa so:

var list = this.getView().byId("list"); 
jQuery.each(list.getList(), function(idx, item) { 
    if (items.getBindingContext().getPath = sBindingPath) { 
     list.setSelectedItem(item); 
    } 
}); 

Hinweis: Halten Sie daran, dass, wenn Sie mit OData arbeiten Dienste und arbeiten mit einer sogenannten "wachsenden Liste", der Eintrag, den Sie suchen, muss nicht unbedingt in der Liste enthalten sein.

Entschuldigung, ich wünschte, ich könnte Ihnen eine angenehmere Antwort geben.

+0

Ich werde mit dir gehen "Nein" :) – srz

Verwandte Themen