【问题标题】:How to generate a list of checkboxes in SAPUI5 from OData service in XML view?如何从 XML 视图中的 OData 服务生成 SAPUI5 中的复选框列表?
【发布时间】:2016-12-08 17:46:43
【问题描述】:

尊敬的 SAPUI5 开发人员,

我们如何在 XML 视图中从 OData 服务生成复选框项目列表?

例如,在下面我从 OData 服务中进行了下拉 SELECT。是否可以使用XML View 中的复选框来执行此类操作?

<sap.ui.layout.form:FormElement label="{i18n>PartnerName}">
    <sap.ui.layout.form:fields>
        <Select items="{path: '/BusinessPartnerSet', sorter: { path: 'McName1', descending: false } }">
            <core:Item key="{Partner}" text="{McName1}"/>
        </Select>
    </sap.ui.layout.form:fields>
</sap.ui.layout.form:FormElement>

提前致谢

【问题讨论】:

    标签: sapui5


    【解决方案1】:

    是的,有可能。我是为 JSON 模型做的,你可以同样尝试 oDataModel-

    型号

        var data = [
                    {
                        value:"Oranges",
                        selected:false
                    },
                    {
                        value:"Apples",
                        selected:true
                    },
                    {
                        value:"Mango",
                        selected:false
                    },
                    {
                        value:"Grapes",
                        selected:true
                    },
                    {
                        value:"Watermelons",
                        selected:false
                    },
                    {
                        value:"Bananas",
                        selected:false
                    }
    
                    ];
    
        this.getView().setModel(new sap.ui.model.json.JSONModel(data));
    

    XML 视图:

        <VBox items="{/}" >
            <items>
                <CheckBox text='{value}' selected='{selected}' />
            </items>
        </VBox>
    

    【讨论】:

    • 还有一个问题:是否也可以为这些复选框设置值?我想将 odata 元素的 id 设置为复选框的值。
    • @MahdiJaberzadeh :我认为我不完全理解您的要求。 ID 是 OData 实体集中的字段吗?如果是,那么您可以像这样轻松地做到这一点:&lt;CheckBox text='{ID}' selected='{selected}' /&gt;。 ID 将显示为带有复选框的文本。
    • 是 ID 是 odata 服务的一部分,但我只想显示名称,但将 ID 作为每个文本框的值。我不想将 id 显示为名称。如果我有一些类似的文本,那么我需要知道选择了哪一个。虽然 ID 是唯一的。同样在 HTML 中,可以为每个复选框设置不同的值。
    • @MahdiJaberzadeh:您需要为每个 Checkbox 创建 CustomData 以存储与屏幕上显示的值不同的值。检查此链接:openui5.hana.ondemand.com/#docs/guide/… VIEW XML 中的更改:&lt;CheckBox name='CB' text='{textToDisplay}' selected='{selected}' &gt; &lt;customData&gt; &lt;core:CustomData key='value' value='{value}' writeToDom='true'&gt; &lt;/core:CustomData&gt; &lt;/customData&gt; &lt;/CheckBox&gt; 使用以下方法获取复选框值:sap.ui.getCore().byId('id_of_checkbox').data('value');
    • 谢谢拉胡尔。实际上,我发现当我使用 sap.ui.getCore().byId('id_of_checkbox') 检索复选框元素时,我可以到达与该复选框相关的 Odata 对象。但你的解决方案也很好。
    猜你喜欢
    • 2019-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-10
    • 1970-01-01
    相关资源
    最近更新 更多