ComboBox – bind item template

  • Timo
    Participant
    • Topics: 5
    • Replies: 6
    # 2 months ago

    Hallo,

    seit dem Update auf 6.0 gibt es Probleme mit den ComboBoxen.
    Wir haben diese mit dem Widget (OpenUI5 1.44) per Skript gefüllt:

    var oModel = new sap.ui.model.json.JSONModel();
    var oComboBox = sap.ui.getCore().byId(“Screen1–ComboBox_status”);
    var oItemTemplate1 = sap.ui.getCore().byId(“Screen1–ui_core_ListItem_status”);

    //create JSON template
    oModel.setData({
    status:[
    {VALUE:”erfolgreich”},
    {VALUE:”nicht erfolgreich”}],
    tooltip: “VALUE”});
    sap.ui.getCore().setModel(oModel);

    //definiert die vorgefertigte Combobox
    oComboBox.bindProperty(“tooltip”, “/tooltip”);
    oComboBox.setModel(oModel);

    //definiert das vorgefertigte ui_core_ListItem
    oItemTemplate1.bindProperty(“text”, “VALUE”);
    oComboBox.bindItems(“/status”, oItemTemplate1);

    console.log(“Combobox für Status wurde befüllt.”);

    Nun wurden alle Comboboxen auf OpenUI5 1.60 angehoben (Stand der App) und die Item-Templates funktionieren nicht mehr.

    Gibt es eine Lösung, wie unter 1.60 die Comboboxen per Skript gefüllt werden?

     

    Danke für die Hilfe 🙂

    Jennifer
    Moderator
    • Topics: 0
    • Replies: 22
    # 2 months ago
    Up
    0
    Down

    Hallo Timo,

    Bei Umstellung der UI5-Version kann es leider passieren, dass Widgets nicht mehr kompatibel sind bzw. nicht mehr so funktionieren wie vorher.
    Zu deinem Problem: wenn in der ComboBox (1.60) die Eigenschaft ‘itemsTemplate’ angehakt ist, sollte das Binding via Skript wieder durchgeführt werden können.

    Timo
    Participant
    • Topics: 5
    • Replies: 6
    # 1 month ago
    Up
    0
    Down

    Hallo Jennifer,

    danke für deine Antwort. Leider funktioniert das Binding leider trotzdem nicht. Auch bei 1.44 musste man das itemsTemplate anhaken um das Binding anzeigen zu lassen. Wir werden jetzt wohl wieder die 1.44er ComboBox einbauen.

    Danke und Gruß

    Timo

    Armin
    Moderator
      Has successfully completed the online course No-Code.
      Has successfully completed the online course Low-Code.
      Has successfully completed the online course Pro-Code.
    • Topics: 0
    • Replies: 44
    # 1 month ago
    Up
    0
    Down

    Hallo Timo,

    könntest du bitte mal prüfen, ob in der betroffenen App die Funktion “Automatisches Binden” aktiviert ist oder nicht? Du findest diese Einstellung über einen Klick auf den Applink im Application Editor (siehe Screenshot 1). Für Widgets in der OpenUI5-Version 1.60 müsste diese deaktiviert werden, damit Bindings von Aggregationen korrekt funktionieren (siehe Screenshot 2).

    Das automatische binden ist seit Simplifier Version 5.5 standardmäßig deaktiviert, sobald man neue Apps erstellt. Aus Rückwärtskompatibilitätsgründen zu Bestandsapps, die auf Basis einer älteren Version als 5.5 erstellt wurden, ist die Funktion jedoch immer aktiviert, da dies dem vorherigen Stand entsprach, wie die App-Sources generiert wurden beim Deployment. Diese Einstellung auf “aus” zu stellen wirkt sich positiv auf die Ladezeiten von Applikationen aus, da dadurch Model-Bindings nur dynamisch zur Laufzeit initialisiert werden, wodurch diese mittlerweile Standard geworden ist.

    In unseren Standard-Widgets der Version 1.60 wurde für alle Aggregationen zusätzlich noch eine Eigenschaft (“templateShareable = false”) verändert, die im Zusammenspiel mit der nun deaktivierten Autobind-Funktion relevant ist. Da du berichtest, dass die 1.44er Widgets noch zu funktionieren scheinen, wo die Eigenschaft für die Aggregationen noch nicht den veränderten Wert (“templateShareable = true”) trägt, sieht es für mich so aus, dass eben das “Automatische Binden” den Fehler verursacht und somit das items-Binding für die ComboBox nicht mehr funktioniert.

     

    Viele Grüße,

    Armin

     

    Attachments:
    You must be logged in to view attached files.
Viewing 4 posts - 1 through 4 (of 4 total)

You must be logged in to reply to this topic.