2016-01-27 2 views
0

Я новичок в SAPUI5/OpenUI5, написав экспериментальный небольшой проект, где я хочу создать кнопку для каждого элемента списка с переменной длиной.Создание кнопок во время работы в OpenUI5

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

Я не мог найти нигде в документации, как показывать кнопки в представлении на основе списка. Я не мог найти способ создать их во время выполнения в элементе <FlexBox>.

Любой свет или ссылка, чтобы помочь мне?

ответ

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

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