Javascript 如何动态创建分段ButtonItems
我有一个需求,需要根据响应中的项目数量动态创建SegmentedButtonItem 视图:我的xml视图中分段按钮的代码:Javascript 如何动态创建分段ButtonItems,javascript,sapui5,Javascript,Sapui5,我有一个需求,需要根据响应中的项目数量动态创建SegmentedButtonItem 视图:我的xml视图中分段按钮的代码: <HBox id="buttonchoice" alignItems="Center" justifyContent="Center" width="100%"> <SegmentedButton select="setInitialChoices" id="paymentMethodSelection"> <items&
<HBox id="buttonchoice" alignItems="Center" justifyContent="Center" width="100%">
<SegmentedButton select="setInitialChoices" id="paymentMethodSelection">
<items>
<SegmentedButtonItem id="55" text="Cloud Offering" width="200px"/>
<SegmentedButtonItem id="56" text="BIT"/>
<SegmentedButtonItem id="57" text="Others" width="100px" press="_segmentButtonSelected"/>
</items>
</SegmentedButton>
</HBox>
控制器代码:
success: function(data, textStatus, jqXHR) {
var that = this;
if (data.length !== 0) {
if (data.questions["0"].id === 54) {
var oInput1 = new sap.m.Text('input1');
//.questions["0"].question
oInput1.setText(data.questions["0"].question);
oInput1.setTooltip("This is a tooltip ");
var oLayout = this.getView().byId("testform");
oLayout.addContent(oInput1);
var oSegBtn = new sap.m.SegmentedButton();
//var oSegBtn = new sap.m.SegmentedButton();
for (var i = 0; i < data.length; i++) {
oSegBtn = ({
items: [
new sap.m.SegmentedButtonItem(i, {
text: "Navigation Off",
press: [that.handleButtonPress, this]
})
]
// press: [that.handleButtonPress, that]
});
// oSegBtn
}
var oLayout1 = this.getView().byId("choiceQs");
oLayout1.addContent(oSegBtn);
}
}
}
success:函数(数据、文本状态、jqXHR){
var=这个;
如果(data.length!==0){
如果(数据问题[“0”].id==54){
var oInput1=新的sap.m.Text('input1');
//.问题[“0”].问题
oInput1.setText(data.questions[“0”].question);
oInput1.setTooltip(“这是一个工具提示”);
var oLayout=this.getView().byId(“testform”);
oLayout.addContent(oInput1);
var oSegBtn=新sap.m.SegmentedButton();
//var oSegBtn=新sap.m.SegmentedButton();
对于(变量i=0;i
问题:
上面的代码只创建一个按钮并添加到内容中,其中data.length为3,理想情况下,我需要创建3个按钮并添加到视图中的内容中
请您建议。您必须更改循环的代码。只需在循环中创建SegmentedButtonItem并调用SegmentedButton的
addItem
var oSegBtn = new sap.m.SegmentedButton();
for (var i = 0; i < data.length; i++) {
var oSegmentButtonItem =
new sap.m.SegmentedButtonItem({
text: "Navigation Off",
press: [that.handleButtonPress, this]
})
;
oSegBtn.addItem(oSegmentButtonItem);
}
var oSegBtn=new sap.m.SegmentedButton();
对于(变量i=0;i
请参见正在运行的示例
//定义新的(简单的)控制器类型
sap.ui.controller(“my.own.controller”{
//在控制器中实现事件处理程序
onInit:function(){
var-aMockData=[“第1项”、“第2项”、“第3项”];
var=这个;
var oSegBtn=新sap.m.SegmentedButton();
对于(var i=0;i
您需要在循环的外部范围内定义按钮数组,因此在循环中,您将使用SegmentedButtonItem填充此数组,并在结束时遍历创建的数组并调用“addContent”。嘿,感谢您的解决方案,如何检查按钮是否已可用不要创建或删除当前按钮并创建新按钮,因为这也会一次又一次地创建导航