从数据源加载值,但是在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上却没有显示文字。
答案 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>