2016-10-28 2 views
0

<Input value="{binding}"/> работает отлично.Как изменить sap.m.Select привязка?

Но если я использую

<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>

Что Shou ld Я делаю?

Я пытался использовать setSelectedItem, но я использовал form.bindElement("/ProductSet('1')") в контроллере, я не знаю, как получить {binding}.

ответ

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' 
         }] 
       }); 

Далее, мой сок. m.select in view: (Я знаю, что у меня есть только 2 элемента для моего выбора такого жесткого кода. Еще я буду использовать привязку агрегации для sap.m.select):

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

Здесь выбранный ключ будет устанавливать ключ, сохраненный в моей модели.

Далее, связывание с моей JSON модели контроллера элемента:

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

и правильно-переплетных работ. Вы можете изменить ключ в модели JSON, и соответствующий ключ выбран в sap.m.Select.

+0

Спасибо, я решил свою проблему, используя 'setSelectedKey' – Tina

Смежные вопросы