如果实体集为空,如何隐藏控件
How to hide control if entity set is empty
我通过 OData 服务从后端获取 IDNumber
(一个 EntitySet)。
在前端,显示所有 ID,但如果 IDNumber
集为空,我想隐藏 ComboBox
(visible="false"
)。
我不知道如何处理这个。
<ComboBox id="cbIDNumber"
items="{/IDNumber}"
visible="{
path: '{/IDNumber}',
formatter: '.formatter.formatVisible'
}"
/>
在formatter.js
中,传递的参数是null
。
我怎样才能得到一些我可以使用的输入?
如果加载您的 IDNumber 列表,将触发一个事件 dataReceived
。
<ComboBox id="cbIDNumber"
items="{
path: '/IDNumber',
events: {
dataReceived: '.onDataReceived'
}
}" />
然后您可以在您的控制器中实现一个事件处理程序:
onDataReceived: function(oEvent) {
const oData = oEvent.getParameter("data");
const aResults = oData.results;
const bIsVisible = aResults.length > 0;
const oCB = this.byId("cbIDNumber");
oCB.setVisible(bIsVisible);
}
我通过 OData 服务从后端获取 IDNumber
(一个 EntitySet)。
在前端,显示所有 ID,但如果 IDNumber
集为空,我想隐藏 ComboBox
(visible="false"
)。
我不知道如何处理这个。
<ComboBox id="cbIDNumber"
items="{/IDNumber}"
visible="{
path: '{/IDNumber}',
formatter: '.formatter.formatVisible'
}"
/>
在formatter.js
中,传递的参数是null
。
我怎样才能得到一些我可以使用的输入?
如果加载您的 IDNumber 列表,将触发一个事件 dataReceived
。
<ComboBox id="cbIDNumber"
items="{
path: '/IDNumber',
events: {
dataReceived: '.onDataReceived'
}
}" />
然后您可以在您的控制器中实现一个事件处理程序:
onDataReceived: function(oEvent) {
const oData = oEvent.getParameter("data");
const aResults = oData.results;
const bIsVisible = aResults.length > 0;
const oCB = this.byId("cbIDNumber");
oCB.setVisible(bIsVisible);
}