在OpenUI5中运行时创建按钮

时间:2016-01-27 22:05:09

标签: javascript sapui5

我是SAPUI5 / OpenUI5的新手,写了一个实验性的小项目,我想为一个长度可变的列表中的每个项目创建一个按钮。

按钮必须指向同一个事件,但是必须通过参数,元素或类似方式知道按下了哪个按钮。

我在文档中找不到如何根据列表在视图中显示按钮。我找不到在<FlexBox>元素中运行时创建它们的方法。

任何帮助我的灯光或链接?

1 个答案:

答案 0 :(得分:2)

这是可行的。

//this is a common btn click handler
var btnHandler = function(evt) {
  var obtn = evt.getSource();
  //now you have access to the respective button
  var customData = obtn.getCustomData()[0].getValue();
  sap.m.MessageToast.show("button Clicked:" + customData)
};

var oFlexBox = new sap.m.FlexBox();

for (var i = 0; i < 5; i++) {
  var btn = new sap.m.Button({
    text: "Button" + i,
    press: btnHandler,
    //add your custom data here.. this is an aggregation which means you can add as many customDatas as required.
    customData: new sap.ui.core.CustomData({
      key: "key",
      value: i
    })
  });
  oFlexBox.addItem(btn);
}

oFlexBox.placeAt('content');

Working JSFiddle here