ComboBox – bind item template

  • Timo
        3 years ago #26157

        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 Häfner
            Has successfully completed the online course Intermediate (200)
            Has successfully completed the online course Advanced (300)
            Has successfully completed the online course Basics (100)
            Has successfully completed the online course Advanced (310)
            Has successfully completed the online course Advanced (320)
            Has successfully completed the Intermediate Certification
            Has successfully completed the Advanced Certification
          3 years ago #26158
          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
              3 years ago #26313
              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 Winkler
                  Has successfully completed the online course Introduction
                  Has successfully completed the online course Intermediate (200)
                  Has successfully completed the online course Advanced (300)
                  Has successfully completed the online course Basics (100)
                3 years ago #26387
                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.