2017-02-15 46 views
0

有了這個代碼,我想在一個HBox中垂直框在HBox中通過控制器

 var count= 4; 

     var hbox = new sap.m.HBox("HBox", { 
      width: "100%" 
     }); 

     for(var i = 0; i <= count; i++){ 
      new sap.m.VBox("V_" + i, { 
       width: "100px", 
       height: "200px", 
      }).placeAt(hbox); 
     }; 
     this.getView().byId("myContainer").addContent(hbox); 

創建4個縱向方框但只有HBox中沒有縱向方框。有任何想法嗎?

回答

0

請在jsbin example看看,它是佈置你在找什麼?

var oLabelA = new sap.m.Label({text:"A"}); 
var oLabelB = new sap.m.Label({text:"B"}); 
var oLabelC = new sap.m.Label({text:"C"}); 
var oLabelD = new sap.m.Label({text:"D"}); 

var oVbox1 = new sap.m.VBox({width: "100%"}); 
var oVbox2 = new sap.m.VBox({width: "100%"}); 
var oVbox3 = new sap.m.VBox({width: "100%"}); 
var oVbox4 = new sap.m.VBox({width: "100%"}); 

oVbox1.addItem(oLabelA); 
oVbox2.addItem(oLabelB); 
oVbox3.addItem(oLabelC); 
oVbox4.addItem(oLabelD); 

var hbox = new sap.m.HBox({ width: "100%"}); 

hbox.addItem(oVbox1); 
hbox.addItem(oVbox2); 
hbox.addItem(oVbox3); 
hbox.addItem(oVbox4); 
0

與您的代碼的問題是,你使用的placeAt功能放入控制。 placeAt函數用於將SAPUI5控件放置在HTML DOM元素中或控件內,如果其具有稱爲內容的聚合,但要將其放置在其他聚合中,您將使用它的特定設置器/獲取器&添加/刪除函數。

HBox在這種情況下擴展了FlexBox控件,該控件具有項目聚合。所以它會有addItem方法來添加一個控件。

var count = 4; 

     var hbox = new sap.m.HBox("HBox", { 
      width: "100%" 
     }); 

     for (var i = 0; i <= count; i++) { 
      hbox.addItem(new sap.m.VBox("V_" + i, { 
       width: "100px", 
       height: "200px", 
      })); 
     }; 
     this.getView().byId("myContainer").addContent(hbox);