У меня есть поле со списком, скажем, с двумя элементами.

Один из элементов содержит релевантные данные для отчета, а другой - нет.

Как мне выделить нежелательный элемент в поле со списком серым цветом?

Я могу выделить все поле со списком серым, но я не уверен, как затенять элементы внутри поля со списком (это поле со списком заполняется вызовом ODATA).

1
stacks 22 Окт 2018 в 23:14

2 ответа

Лучший ответ

Вы можете отключить элементы поля со списком следующим образом:

Хотите отключить выбранный элемент из списка поля со списком:

this.getView().byId("idOfYourComboBox").getSelectedItem().setEnabled(false);

На основе индекса элементов в списке.

this.getView().byId("idOfYourComboBox").getItems()[1].setEnabled(false);

Кроме того, вы можете сделать то же самое на основе ключа, например:

this.getView().byId("idOfYourComboBox").getItemByKey("keyName")

Позвольте мне знать, если это помогает.

0
Nandan Chaturvedi 23 Окт 2018 в 05:15

Вы можете использовать свойство enabled sap .ui.core.Item. Обновили oData и добавили еще одно свойство boolean, например isRelevant, которое сообщает, какой элемент включен / отключен.

Просмотр XML

<ComboBox items="{path: '/YourBindingPath'}">
  <core:Item key="{key}" text="{text}" enabled="{enabledProperty}" />
</ComboBox>

Просмотр JS

var oItemTemplate = new sap.ui.core.ListItem({
  key: "{key}", 
  text: "{text}", 
  enabled: "{enabledProperty}"
});
var oComboBox = new sap.m.ComboBox({
  items: { 
    path: "/YourBindingPath", 
    template: oItemTemplate 
  }
});
3
inizio 23 Окт 2018 в 05:50
52937113