如何在控制器中使用选择控件?

时间:2019-04-30 14:27:03

标签: sapui5

我正在尝试在控制器中定义选择控件,但是它不起作用。我希望选择控件具有默认值{garows> Type}并显示具有Question,Answer和Button的下拉列表。

这是我到目前为止尝试过的。该选择是ColumnListItem中的第三个控件。其他所有东西都在起作用。

this.setModel(new JSONModel({
        "type": {
            "answer": "Answer",
            "button": "Button",
            "question": "Question"
        }
}), "typDropDown");

var item = new Item({
    text: "{garows>/Type}"
});

var oTable = this.byId("gaTable");
oTable.setMode("None");
oTable.bindItems({ //changes the table for guided assistance qa to editable 
    path: "garows>/flow",
    template: new ColumnListItem({
    cells: [
        new Text({
            text: "{garows>ID}"
        }),
        new TextArea({
            value: "{garows>value_long}",
            growing: true,
            growingMaxLines: 7
        }),
        new Select({
            autoAdjustWidth: true
        }).bindAggregation("items", "typDropDown>/type", item),
        new TextArea({
            value: "{garows>Action}"
        }),
        new TextArea({
            value: "{garows>Button1}"
        }),
        new TextArea({
            value: "{garows>Button2}"
        }),
        new TextArea({
                value: "{garows>Button3}"
        }),
        new TextArea({
            value: "{garows>Button4}"
        }),
        new TextArea({
            value: "{garows>Button5}"
        }),
        new TextArea({
            value: "{garows>Button6}"
        }),
        new TextArea({
            value: "{garows>Active_Flag}"
        })

        ]
     }),
     key: "ID"
}).setKeyboardMode("Edit");

预期结果是,select控件将具有默认值{garows> Type},并显示包含Question,Answer和Button的下拉列表。我将不胜感激。

2 个答案:

答案 0 :(得分:0)

在bindAgregation上应该为

 .bindAggregation("items", "garows>/type", item) right?

您使用了其他模型(typDropDown)。

答案 1 :(得分:0)

我认为您的typDropDown的数据结构不正确-它必须是数组,而不是聚合绑定的对象映射。

如果我对您的理解正确,则需要将项聚合绑定到typDropDown模型(必须是数组),并且要将Select的selectedKey属性绑定到garows模型中的值。

因此,在我看来,您需要更改typeDropDown和项目模板的数据结构,并需要绑定selectedKey。