大家好,所有SAP UI5和FIORI都是正面的,
我有ChartContainer,带有图表按钮和表格按钮。它在xml文件中定义为:
<suite:ChartContainerContent id="idButtonChart"
icon = "sap-icon://bar-chart"
title = "Chart"
>
<suite:ChartContainerContent id="idButtonTable"
icon = "sap-icon://table-view"
title = "{i18n>table}">
<suite:content>
假设我想隐藏一些放在ChartContainer中的按钮。我试过(在controller.js部分):
this.getView().byId("idButtonChart").setVisible(false);
或
this.getView().byId("idButtonChart").setVisible(false);
但是这段代码隐藏了图形而不是按钮。请问,您知道如何隐藏按钮吗?或者在按钮idButtonTable上触发点击事件?
感谢您的任何建议。
答案 0 :(得分:3)
您是否找到了解决此问题的好方法?我一直在检查SDK,但我找不到直接获取这些按钮的方法。
无论如何,你可以使用以下代码来实现 -
var chartContainerContent = this.getView().byId('your chart id');
var chartContainer = chartContainerContent.getParent();
var aToolbarButtons = chartContainer._oToolBar.getContent();
var segmentedButton;
for(var i=0; i<aToolbarButtons.length; i++){
var button = aToolbarButtons[i];
if(button.getMetadata()._sClassName === "sap.m.SegmentedButton"){
segmentedButton = button;
break;
}
}
//segmentedButton.getButtons()
获得按钮后,您可以将Visible(false)设置为您想要的按钮。
当然这不是最好的,但是chartContainer没有提供任何公共功能来获取图表的按钮。
答案 1 :(得分:0)
我试着理解这个问题。您可以在示例中定义2个图表。 这些按钮通常用于将显示切换到相应的图表。
如果隐藏相应的按钮,如何在2个图表之间切换?
答案 2 :(得分:0)
有点晚了,但是我猜.setVisible之后的.updateChartContainer()应该可以解决问题:
this.getView().byId("idButtonChart").setVisible(false);
this.getView().byId("<NAME OF THE CONTENT CONTAINER>").updateChartContainer();