Rohit
Rohit

Reputation: 34

sapui5 :- text not shown on ui5 in Dropdown Box

The values are loaded from the data source but on ui no text is shown.

var r0c1 = new sap.ui.commons.DropdownBox("r0c1");
var oItemTemplate1 = new sap.ui.core.ListItem();

property binding is done:

oItemTemplate1.bindProperty("text", "{ZtmDockid}");

bind the items:

r0c1.bindItems("/d/results", oItemTemplate1);

Data is properly coming, but on UI its not showing the text.

Upvotes: 0

Views: 1830

Answers (2)

qmacro
qmacro

Reputation: 3105

Herrlock is correct, but I wanted to draw out the subtlety - explicit binding with the bind* functions requires no curly braces ... these are only needed for embedded, or implicit binding.

Here's your code with the braces removed from your bindProperty's second parameter, as a runnable snippet.

// Code from question
var r0c1 = new sap.ui.commons.DropdownBox("r0c1");
var oItemTemplate1 = new sap.ui.core.ListItem();

oItemTemplate1.bindProperty("text", "ZtmDockid");
r0c1.bindItems("/d/results", oItemTemplate1);

// Extra code
r0c1
  .setModel(new sap.ui.model.json.JSONModel({
    d : {
      results : [
        { ZtmDockid : "1" },
        { ZtmDockid : "2" },
        { ZtmDockid : "3" }
      ]
    }
  }))
  .placeAt('content');
<script src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js"
        data-sap-ui-libs="sap.m,sap.ui.commons"
        data-sap-ui-theme="sap_bluecrystal"></script>
<div id="content"></div>

Upvotes: 0

herrlock
herrlock

Reputation: 1454

there are two ways to bind data to a control.

First way using bindProperty:

var oItemTemplate1 = new sap.ui.core.ListItem();
oItemTemplate1.bindProperty("text", "value");

(notice: usage of { })


or binding the values when creating the control:

var oItemTemplate1 = new sap.ui.core.ListItem({
    text: "{value}"
});

(you need to use { } to indicate dynamic values)

Upvotes: 2

Related Questions