sapui5: - 文本未显示在下拉框中的ui5上

时间:2014-12-14 19:04:36

标签: sapui5

从数据源加载值,但是在ui上没有显示文本。

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

完成属性绑定:

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

绑定项目:

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

数据正常到来,但在UI上却没有显示文字。

2 个答案:

答案 0 :(得分:2)

将数据绑定到控件有两种方法。

使用bindProperty的第一种方式:

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

(注意:使用{})


或在创建控件时绑定值:

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

(您需要使用{}来表示动态值)

答案 1 :(得分:0)

Herrlock是正确的,但我想画出精妙的 - 与bind *函数的显式绑定不需要花括号......这些仅用于嵌入或隐式绑定。

这是你的代码,从bindProperty的第二个参数中删除了大括号,作为一个可运行的代码段。

// 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>