禁用组合框SAPUI5中的项目

时间:2018-10-22 20:14:06

标签: combobox sapui5

我有一个带有2个项目的组合框。

其中一项具有要报告的相关数据,而另一项则没有。

我如何将组合框中的不需要的项目涂成灰色?

我可以将整个组合框显示为灰色,但是我不确定如何将组合框内的项目显示为灰色(此组合框由ODATA调用填充)。

2 个答案:

答案 0 :(得分:2)

您可以使用sap.ui.core.Item的属性enabled。 更新了您的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 
  }
});

答案 1 :(得分:0)

您可以将组合框的项目设置为禁用,如下所示:

要禁用组合框列表中的所选项目:

@attributes

基于列表中各项的索引。

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

此外,您还可以根据以下密钥执行相同的操作:

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

让我知道这是否有帮助。