2014-09-14 3 views
0

экспертов,SAPUI5 - Содержимое не отображается

Я только начал изучать sapui5, и прямо сейчас вещь, которая беспокоит меня то, что я не могу получить выпадающее меню, чтобы показать, в то время как кнопка I создается вместе с выпадающим меню.

Вот мое мнение:

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 

Я получаю данные с сервера, оповещения внутри функции успеха стрелять, но я вижу только кнопку на экране. Что я делаю неправильно?

Спасибо.

ответ

2

Основная причина заключается в том, что вы добавляете окно Dropdown в метод обратного вызова службы, и aControls уже возвращается с включенным только oButton перед обратным вызовом службы.

Настройте код следующим образом будет делать:

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 
+0

Ваше предложение работал очень хорошо - теперь я вижу, как выпадающего меню и DatePicker. Спасибо! Но теперь они позиционируются один за другим. Как разместить их в представлении? – keshet

+0

используйте макет, подобный SimpleForm. Добавьте свои элементы управления в SimpleForm, а затем верните его, а не простой массив элементов управления. – perl2012

Смежные вопросы