Я пытаюсь заполнить в выпадающем DropDownBox'е SAPUI5 из JSONобеспечение пустого параметра в поле со списком sapui5
new sap.ui.commons.DropdownBox(this.createId('inpExpenseType'), {
selectedKey: '{ExpenseType/Id}',
editable: '{/CanEditPayment}',
required: "{/CanEditPayment}",
displaySecondaryValues: true,
items: {
path: 'parameters>/Benefits',
template: new sap.ui.core.ListItem(this.createId('liExpenseType'), {
key: '{parameters>Id}',
text: '{parameters>Name}',
additionalText: '{parameters>Code}'
})
},
layoutData: new sap.ui.layout.GridData({span: 'L6 M6 S6'})
}).attachChange(oms.app.ModelUtils.handleListItemChange)
Теперь на основе условия, например. if (status === 'Approved'), я хочу показать только один параметр в раскрывающемся списке. Я использовал фильтр ниже, чтобы сделать это.
if(state==='Approved'){
//this is the option I wish to display in the dropdownbox.
aFilters.push(new sap.ui.model.Filter("Id", sap.ui.model.FilterOperator.EQ, "33"));
}
odropdownbox.bindItems('parameters>/Benefits', oTemplate, null, aFilters);
Теперь моя проблема заключается в том, что этот единственный вариант получения по умолчанию в выпадающем DropDownBox'е поэтому событие OnChange не будет срабатывать.
Я пытался по умолчанию пустого элемента, как показано ниже
if(State==='Approved'){
var oItem = new sap.ui.core.ListItem({
key: 'dummy',
text: '',
additionalText: ''
});
odropdownbox.insertItem(oItem,0);
odropdownbox.setSelectedKey('dummy');
}
Но это не имеет никакого значения, и я вижу единственный вариант, населенный по умолчанию.
Как я могу это решить? Есть ли какой-то чистый способ манипулировать списком json?
Можете ли вы попробовать 'odropdownbox.setValue ('')'? который установит значение равным –
№ Даже это не поможет. Он по-прежнему по умолчанию имеет единственную опцию – Noufal