繁体   English   中英

如何在 sap ui5 中将组合框默认值设置为会话登录用户 ID

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM