如何从分段按钮中隐藏一个按钮?


<Toolbar>
<ToolbarSpacer/>
<Button id="1" visible="false" />
<Button id="2" />
<SegmentedButton>
<Button id="3" />
<Button id="4" visible="false"/>
<Button id="5" />
</SegmentedButton>
<ToolbarSpacer/>
</Toolbar>

除按钮 1 外的所有按钮都可见。如何隐藏按钮 4? 我尝试使用控制器 -

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

但按钮仍然可见。

sap.ui.version - 1.24.2

请清除浏览器缓存。在 chrome 中输入"chrome://chrome/settings/clearBrowserData"作为网址。或者在隐身标签页中打开应用:使用 Ctrl + Shift + N 在 Chrome 中打开隐身标签页。

这不是代码中的错误。

<Toolbar>
<ToolbarSpacer/>
<Button id="1" visible="false" />
<Button id="2" />
<SegmentedButton>
<Button id="3" />
<Button id="4" visible="false"/>
<Button id="5" />
</SegmentedButton>
<ToolbarSpacer/>
</Toolbar>

请参阅此示例,其中您的代码运行良好:示例

编辑:至少在 sapui5 到 1.28.9 版本中的错误

我让它像这样工作:

this.byId('4').addStyleClass('hideBtn');

.CSS:

.hideBtn{
display:none;
}

我认为 1.24 没有可用的 SAPUI5 支持。


更新: 请看这个: https://sapui5.hana.ondemand.com/#versionoverview.html

好的,我在控制器中执行此操作:

onInit: function() {
this.bus = sap.ui.getCore().getEventBus();
// Event with app settings
this.bus.subscribe('Hello', 'show', this.check4visble, this);
},
onAfterRendering: function(){
this.getView().byId('4').addStyleClass('hideBtn');
},
check4visble: function(channelId, eventId, data){
if(data.is4visible){
this.getView().byId('4').addStyleClass('hideBtn');
}else{
this.getView().byId('4').removeStyleClass('hideBtn');
}
},

感谢@n01dea对错误的解释

感谢@Rahul上课的想法,你忘了链子.getView(),小心(

相关内容

最新更新