如何更改sap.m.Select绑定?

时间:2016-10-28 09:07:02

标签: sapui5 sap-fiori

<Input value="{binding}"/>效果很好。

但如果我使用

<Select> <core:Item key="{key}" text="{binding}" /> <core:Item key="1" text="O530" /> <core:Item key="2" text="O531" /> </Select>

它显示为

<Select> <core:Item key="1" text="O530" /> <core:Item key="1" text="O530" /> <core:Item key="2" text="O531" /> </Select>

但我想要的是

<Select> <core:Item key="1" text="O530" /> (selected) <core:Item key="2" text="O531" /> </Select>

我该怎么办?

我尝试使用setSelectedItem,但我在控制器中使用了form.bindElement("/ProductSet('1')"),我不知道如何获取{binding}

1 个答案:

答案 0 :(得分:0)

我想知道你为什么用过:

<Select>
    <core:Item key="{key}" text="{binding}" /> <- This line of code?
    <core:Item key="1" text="O530" />
    <core:Item key="2" text="O531" />
</Select>

无论如何,我会这样做: 首先我的模型有选择的键:

var model = new sap.ui.model.json.JSONModel({
                  data: [
                         {
                             key:'2',
                             text:'text'
                         }] 
               });

接下来,我的sap.m.select在视图中:(我知道我只有两个项目用于我的选择这么硬的代码,否则我将使用聚合绑定sap.m.select):

<Select selectedKey="{key}" id='idSelect'>
            <core:Item key="1" text="O530" /> 
            <core:Item key="2" text="O531" />
        </Select> 

此处,selectedkey将设置存储在我的模型中的密钥。

接下来,来自我在控制器中的JSON模型的元素绑定:

this.getView().byId('idSelect').setModel(model).bindElement({
                      path: '/data/' + 0
                   });

并且绑定正常。您可以在JSON模型中更改密钥,并在sap.m.Select中选择相应的密钥。