如何在sap Ui5中添加组合框事件

问题描述 投票:0回答:1

我在一个表中使用组合框,有两个字段作为男性和女性,如果我改变该值存储在JSON模型数据中..如何使用它的事件..

以下是我的代码

oTable.addColumn(new sap.ui.table.Column( {
                 label: new sap.ui.commons.Label({text: "Gender"}),
                 template: new sap.ui.commons.ComboBox(
                                {items: [new sap.ui.core.ListItem({text: "Female"}),
                                new sap.ui.core.ListItem({text: "Male"})]}).bindProperty("value","gender"),
                 sortProperty: "gender",
                 filterProperty: "gender",                   
                 enabled : true,                     
                 change: function(oEvent){
                    sap.ui.getCore().byId("gender").setValue(oEvent.oSource.getSelectedItemId());
                 },
                 width: "75px"
                 }));
    function change(oEvent){
                 var bEnabled = oEvent.getParameter("enabled");
                 // modify the enabled property value in the model to reflect changes
                 oModel.setData({enabled: bEnabled}, true); // true means merge the data instead of replacing
      }; 

但它没有反映价值观......请更正代码。

sapui5
1个回答
0
投票
  1. 你应该将你的`change`函数移动到组合框,当前是附加到列(没有这样的事件)。
  2. 你可以把你的`bindProperty`调用放到构造函数中
  3. 在事件 - 函数中,您必须获取模型并更改其值。
new sap.ui.commons.ComboBox({
    value: "{gender}",
    items: [
        new sap.ui.core.ListItem({
            text: "Female"
        }), new sap.ui.core.ListItem({
            text: "Male"
        })
    ],
    change: function(oEvent) {
        var newValue = oEvent.getParameter("newValue");
        var bindingPath = this.getBindingPath("value");
        this.getModel().setProperty(bindingPath, newValue);
    }
})
© www.soinside.com 2019 - 2024. All rights reserved.