如果使用诸如此类的客户端JSONModel模型(即假设所有数据已在客户端上可用)并且目标集合是 array ,则简单的表达式绑定就足够了:
title="{= ${myJSONModel>/myProducts}.length}"
Run Code Online (Sandbox Code Playgroud)
sap.m.Tablesap.ui.table.Table正如您在上面的示例中看到的,当项目数量发生变化时,框架会通知表达式绑定,它最终会自动更新属性值。
updateFinished中的事件sap.m.ListBase特别是如果启用了增长功能,此事件会派上用场,始终获取框架分配给事件参数的新计数值total。
如果该属性设置为 ,
total则可以使用[参数] 。growingtrue
sap.m.ListBasetitle="{= ${myJSONModel>/myProducts}.length}"
Run Code Online (Sandbox Code Playgroud)
<List
growing="true"
items="{/Products}"
updateFinished=".onUpdateFinished"
>
Run Code Online (Sandbox Code Playgroud)
该updateFinished事件在控件更新并处理项目绑定后触发。事件参数提供根据过滤、排序等操作请求"total"的值。$count
change中的事件sap.ui.model.Binding此事件可以应用于任何派上用场的绑定,尤其是在控件不支持该updateFinished事件的情况下。
onUpdateFinished: function(event) {
const reason = event.getParameter("reason"); // "Filter", "Sort", "Refresh", "Growing", ..
const count = event.getParameter("total"); // Do something with this $count value
// ...
},
Run Code Online (Sandbox Code Playgroud)
someAggregation="{
path: '/Products',
events: {
change: '.onChange'
}
}"
Run Code Online (Sandbox Code Playgroud)
event.getSource()返回相应的 (List)Binding 对象,该对象内部存储$count有(或$inlinecount)的结果。我们可以通过调用公共 API来获取计数结果。getLength()"growing"包含任何原因sap.ui.model.ChangeReason。但如果控件可以增长,它可能是从支持该updateFinished事件的 ListBase 派生的。如果根本没有列表绑定但仍然需要计数值,我们始终可以手动发送请求来获取计数值。为此,将系统查询附加$count到读取方法中的路径中:
onChange: function(event) {
const reason = event.getParameter("reason"); // See: sap.ui.model.ChangeReason
const count = event.getSource().getLength();
// ...
},
Run Code Online (Sandbox Code Playgroud)
请查看文档主题Binding Collection Inline Count。
| 归档时间: |
|
| 查看次数: |
5283 次 |
| 最近记录: |