如何根据绑定结果隐藏控件
How to hide a control based on the binding result
我认为几乎所有内容都在标题中。这是一个例子:
<Select id="catComboBox" change="onChangeCat" items="{ path: '/ReasonCategorySet', sorter: { path: 'Zcat' } }">
<core:Item key="{Zcat}" text="{Zdesc}"/>
</Select>
根据连接的用户,Select可能是空的,一旦我知道那里没有数据,我想隐藏这个控件。
如何检测控件是否成功加载数据?
确定找到解决方案 x) :
代码如下:
this.oModel.attachRequestCompleted(function(data) {
if (that.getView().byId("catComboBox").getItems().length === 0) {
that.getView().byId("catComboBox").setVisible(false);
}
})
或者,您可以将可见的 属性 绑定到同一模型 属性 并使用特殊的格式化程序来评估类别集是否有任何项目。
<Select id="catComboBox"
change="onChangeCat"
items="{ path: '/ReasonCategorySet', sorter: { path: 'Zcat' } }"
visible="{ path: '/ReasonCategorySet', formatter: 'checkCount' }">
<core:Item key="{Zcat}" text="{Zdesc}"/>
</Select>
checkCount 可以是这样的:
checkCount: function(aItems) {
return Array.isArray(aItems) && aItems.length > 0;
}
最短的可能解决方案是表达式绑定。可以找到示例 here.
<Select id="catComboBox"
change="onChangeCat"
items="{ path: '/ReasonCategorySet', sorter: { path: 'Zcat' } }"
visible="{=${/ReasonCategorySet}.length > 0}">
<core:Item key="{Zcat}" text="{Zdesc}"/>
</Select>
我认为几乎所有内容都在标题中。这是一个例子:
<Select id="catComboBox" change="onChangeCat" items="{ path: '/ReasonCategorySet', sorter: { path: 'Zcat' } }">
<core:Item key="{Zcat}" text="{Zdesc}"/>
</Select>
根据连接的用户,Select可能是空的,一旦我知道那里没有数据,我想隐藏这个控件。
如何检测控件是否成功加载数据?
确定找到解决方案 x) :
代码如下:
this.oModel.attachRequestCompleted(function(data) {
if (that.getView().byId("catComboBox").getItems().length === 0) {
that.getView().byId("catComboBox").setVisible(false);
}
})
或者,您可以将可见的 属性 绑定到同一模型 属性 并使用特殊的格式化程序来评估类别集是否有任何项目。
<Select id="catComboBox"
change="onChangeCat"
items="{ path: '/ReasonCategorySet', sorter: { path: 'Zcat' } }"
visible="{ path: '/ReasonCategorySet', formatter: 'checkCount' }">
<core:Item key="{Zcat}" text="{Zdesc}"/>
</Select>
checkCount 可以是这样的:
checkCount: function(aItems) {
return Array.isArray(aItems) && aItems.length > 0;
}
最短的可能解决方案是表达式绑定。可以找到示例 here.
<Select id="catComboBox"
change="onChangeCat"
items="{ path: '/ReasonCategorySet', sorter: { path: 'Zcat' } }"
visible="{=${/ReasonCategorySet}.length > 0}">
<core:Item key="{Zcat}" text="{Zdesc}"/>
</Select>