按,隐藏UI5 fiori中ChartContainerContent中的按钮

时间:2016-10-11 13:43:29

标签: sapui5

大家好,所有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>

enter image description here

假设我想隐藏一些放在ChartContainer中的按钮。我试过(在controller.js部分):

this.getView().byId("idButtonChart").setVisible(false);

this.getView().byId("idButtonChart").setVisible(false);

但是这段代码隐藏了图形而不是按钮。请问,您知道如何隐藏按钮吗?或者在按钮idButtonTable上触发点击事件?

enter image description here

感谢您的任何建议。

3 个答案:

答案 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();