在组合框sapui5中提供一个空白选项
providing a blank option in the combobox 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)
现在基于eg的条件。如果(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);
现在我的问题是,这个单一的选项在下拉框中被默认,所以onChange事件不会被触发。
我尝试默认一个空白项,如下所示
if(State==='Approved'){
var oItem = new sap.ui.core.ListItem({
key: 'dummy',
text: '',
additionalText: ''
});
odropdownbox.insertItem(oItem,0);
odropdownbox.setSelectedKey('dummy');
}
但这没有任何区别,我看到单个选项被填充为默认值。
我该如何解决这个问题?是否有一些干净的方法来操作json列表?
无需添加新条目
在绑定项目后使用fireChange,这样就没有问题了。
odropdownbox.bindItems('parameters>/Benefits', oTemplate, null, aFilters);
odropdownbox.fireChange();
相关文章:
- 无法在Ionic select中预先选择最后一个选项
- 如果类不是一个选项,如何在使用 jQuery 时控制(避免)嵌套 html 元素的样式
- AngularJS ng选项在选择一个选项后删除了默认的空白值
- 在下拉列表中选择一个选项的值
- 创建了一个选项卡,但点击时不会起作用-jQuery issue/newbie
- HTML-从mysql生成的选择框中的一个选项更改文本区域的颜色
- 打开一个选项卡,并在firefox网络扩展中向其发出POST请求
- 链接到手风琴中的另一个选项卡,嵌入的链接将不起作用
- 如何将数组附加到下拉导航栏并禁用其中的一个选项
- 尝试添加一个选项以使用append进行选择,但没有任何结果
- 在dojo中将数据从一个选项卡绑定到另一个选项卡(打开选项卡?)
- 单击按钮进入下一个选项卡,而不是单击选项卡
- PHP Jquery选项卡:内容加载到一个选项卡's面板
- 对添加另一个选项卡的onsubmit函数停止重定向
- 用CSS和Javascript创建一个选项卡系统
- 在下拉列表中的页面加载中已经选择了一个选项,该选项也可以更改
- jQuery UI 选项卡取消选择事件或在选择时保存上一个选项卡
- 单击链接时添加另一个选项
- 如何在 PHP 中使用 OnChange 事件的下拉列表中选择一个选项后,对大量数据行设置分页
- jQuery - 根据标识符获取下一个选项的总值