SAPUI5 - 不显示内容

时间:2014-09-14 11:47:27

标签: sapui5

专家

我刚刚开始研究sapui5,现在困扰我的是我无法显示下拉菜单,而我显示的是一个与下拉菜单一起创建的按钮。

以下是我的观点:

createContent : function(oController) {

        var aControls = [];

        var oButton = new sap.ui.commons.Button({
            id : this.createId("MyButton"),
            text : "Get response from servlet"
        });
        oButton.attachPress(oController.getResponse);
        aControls.push(oButton);

        $.ajax({
            url : "GetEmployees",
            type : "post",
            success : function(response) {

                var oEmployeeSelection = new sap.ui.commons.DropdownBox("employee");
                oEmployeeSelection.setTooltip("Employee");
                oEmployeeSelection.setWidth("300px");

                $.each(response, function(index, employee) {
                alert("entered selection creation");
                var oItem = new sap.ui.core.ListItem("Employee"+index);
                oItem.setText(employee);
                oEmployeeSelection.addItem(oItem);
                alert("processed: "+oItem);
                });
                alert(oEmployeeSelection);
                // Attach the DropdownBox to the page
                aControls.push(oEmployeeSelection);


            }, // end success call handler

            error: function(){
                alert("error while building employee select menu");
            }
        });// end Employee selection

        return aControls;

    }// end createContent

我从服务器获取数据,在成功功能拍摄中发出警报,但我只看到屏幕上的按钮。 我做错了什么?

感谢。

1 个答案:

答案 0 :(得分:2)

根本原因是您在服务回调方法中添加了Dropdown框,并且在服务回调之前只返回了oButton,并且已经返回了aControls。

按以下方式调整代码:

createContent: function(oController) {

        var aControls = [];

        var oButton = new sap.ui.commons.Button({
            id: this.createId("MyButton"),
            text: "Get response from servlet"
        });
        oButton.attachPress(oController.getResponse);
        aControls.push(oButton);

        //Add dropdown box before your service call

        var oEmployeeSelection = new sap.ui.commons.DropdownBox("employee");
        oEmployeeSelection.setTooltip("Employee");
        oEmployeeSelection.setWidth("300px");
        aControls.push(oEmployeeSelection);

        $.ajax({
            url: "GetEmployees",
            type: "post",
            success: function(response) {
                $.each(response, function(index, employee) {
                    alert("entered selection creation");
                    var oItem = new sap.ui.core.ListItem("Employee" + index);
                    oItem.setText(employee);
                    oEmployeeSelection.addItem(oItem);
                    alert("processed: " + oItem);
                });
                alert(oEmployeeSelection);

            }, // end success call handler

            error: function() {
                alert("error while building employee select menu");
            }
        }); // end Employee selection

        return aControls;

    } // end createContent