[英]how to set combo box default value as session logged in user id in sap ui5
我在 sap ui5 中使用组合框控件。 我需要显示默认的登录用户 ID。 我怎样才能做到这一点? 此默认用户 ID 是 odata 服务的一部分。 例如我有 10 个数据(INC0001 到 INC0010)。 如果用户 INC0004 登录,那么默认情况下我想在组合框中显示它。 我现在只有第一个空白。
XML 代码:
<Select id="select1"
items="{ path: '/UserSet', sorter: { path: 'zuserid' } }"
change="handleChange">
<core:Item text="{zuserid}" key="{zuserid}"/>
<layoutData>
<l:GridData span="XL2 L2"/>
</layoutData>
</Select>
sap ui5 中的会话用户:
var userId = sap.ushell.Container.getService("UserInfo").getUser().getId();
您是否尝试在控制器中绑定数据?
this.getView().byId("select1").bindItems({
path: "/UserSet",
template: new sap.ui.core.Item({
key: "{zuserid}"
text: "{zuserid}"
}),
events: {
dataReceived: function () {
var userId = sap.ushell.Container.getService("UserInfo").getUser().getId();
this.getView().byId("select1").setSelectedKey(userId);
}.bind(this)
}
});
一旦接收到数据,就会触发事件dataReceived
,此时可以按照@Jorg 在上面的反应中建议的那样设置ComboBox
的选定键。
Select
有一个名为selectedKey
的参数,您可以使用它。 通常这是另一种模型绑定,但您也可以通过编程方式进行。
SDK有一个例子: https : //sapui5.netweaver.ondemand.com/sdk#/entity/sap.m.Select/sample/sap.m.sample.Select/code
<Select
forceSelection="false"
selectedKey="{/SelectedProduct}"
items="{
path: '/ProductCollection',
sorter: { path: 'Name' }
}">
<core:Item key="{ProductId}" text="{Name}" />
</Select>
这是此问题的解决方案。 这将有助于任何人都在寻找相同的东西。
var oData ={
recipient :{
name :"TCS0001"}};
var oModel =newJSONModel(oData);
this.getView().setModel(oModel,"NamedModel");
<ComboBox id="combo1" selectedKey="{NamedModel>/recipient/name}" items="{ path: '/UserSet', sorter: { path: 'zuserid' } }" change="handleChange">
<core:Item text="{zuserid}" key="{zuserid}"/>
<layoutData>
<l:GridData span="XL3 L3"/>
</layoutData>
</ComboBox><br>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.