Как установить значение по умолчанию с помощью Select? - PullRequest
0 голосов
/ 29 мая 2019

Как установить значение по умолчанию, используя событие выбора? В настоящее время в режиме EDIT я просто жестко запрограммировал selectedKey="USD", поэтому, когда пользователь нажимает другое значение (например, CAD), оно не обновляет значение до CAD в режиме VIEW.

<Select id="idCurrency" items="{/VH_CurrencySet}" selectedKey="USD">
    <items>
        <core:Item text="{Text}" key="{Code}" />
    </items>
    <layoutData>
        <l:GridData span="XL2 L3 M3 S5" />
    </layoutData>
</Select>

В режиме просмотра, валюта должна выглядеть как CAD.

Ответы [ 3 ]

0 голосов
/ 29 мая 2019

Персонал, я предпочитаю максимально использовать привязку.

Если вы добавите запись в вашу модель '/ CurrencySelected', выбранное значение будет постоянно отражаться в вашей модели.

controller.js

// somewhere on model init
// If you want to keep USD as default value, otherwise first one will be affected automatically
model.setProperty('/CurrencySelected', 'USD')

// To consume the currency
const currentCurrency = model.getProperty('/CurrencySelected')

view.xml

<Select 
  id="idCurrency"
  items="{/VH_CurrencySet}"
  selectedKey="{/CurrencySelected}">
  <items>
    <core:Item
      text="{Text}"
      key="{Code}"/>
  </items>
  <layoutData>
    <l:GridData span="XL2 L3 M3 S5"/>
  </layoutData>
</Select>
0 голосов
/ 29 мая 2019

Вы правы - вам не нужно жестко кодировать выбранный ключ.Вы должны установить выбранный ключ в коде после загрузки данных (например, прикрепив функцию к событию attachRequestCompleted от загружаемой модели). Это означает, что USD будет исходным значением по умолчанию .

После этого элемент управления Select будет отображать выбранную вами валюту.Доверять это имеет смысл?

<Select id="idCurrency" items="{/VH_CurrencySet}">
    <items>
         <core:Item text="{Text}" key="{Code}"/>
    </items>
</Select>

Если вам нужен доступ к коду валюты, вы можете привязать переменную к selectedKey.

0 голосов
/ 29 мая 2019

Вам необходимо настроить функцию изменения для управления:

<Select id="idCurrency" items="{/VH_CurrencySet}" selectedKey="USD" change="yourfunction">
    <items>
        <core:Item text="{Text}" key="{Code}"/>
    </items>
    <layoutData>
        <l:GridData span="XL2 L3 M3 S5"/>
    </layoutData>
</Select>

После этого вы реализуете функцию yourfunction внутри вашего контроллера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...