在sap.ui.table.Table中的Combobox

时间:2017-01-23 10:58:08

标签: sap sapui5

我想在表格的Combobox中设置值:它没有显示值?这是代码: 视图:

<Column width="10rem">
    <m:Label text="{i18n>Status}" />
    <template>
        <m:ComboBox items="{items>/Status}"
                 templateShareable="true">
            <m:items>
                <core:Item text="{Name}" />
            </m:items>
        </m:ComboBox>
    </template>
</Column>

控制器:这是参数集。

success : function(oData, oResponse) {
                      // create JSON model
                      var oODataJSONModel = new sap.ui.model.json.JSONModel();
                      var child1 = [];
                      child1.push({Name:"S"});
                      child1.push({Name:"E"});
                      oData.Status = child1;
                      oODataJSONModel.setData(oData);
                      oView.setModel(oODataJSONModel, "items");

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您在Item的属性绑定中缺少模型的别名。

<core:Item text="{items>Name}" />

答案 1 :(得分:0)

如果要在更改时读取组合框的值,可以执行以下操作。首先在XML中,在组合框元素中设置属性selectionChange="nameOfYourFunction"。每当用户点击其他项目时,nameOfYourFunction()都会执行。在此功能中,您可以检查值。

nameOfYourFunction : function(){
     //Do whatever you want to do here when user changes value of combo
     this.getView().byId("combobox_id_here").getValue(); // returns text inside combobox
}

您可能需要使用该功能并查看何时完全被调用。我已经做了一点,有时它会被调用两次。我想有一次当Combobox的文本是列表中的值时,当你离开组合框的焦点时它会被再次调用。两次调用可能不会影响您的代码,具体取决于您在函数中执行的操作。