如何获取sap.ui.table.Table经排序筛选后的完整数据?
获取SAP UI5表格排序筛选后的全部数据方法
不用手动读取筛选值再自行过滤,直接通过表格的绑定对象就能拿到处理后的完整数据,步骤如下:
- 首先获取表格的行绑定对象:
const oBinding = oTable.getBinding("rows"); - 调用绑定对象的
getContexts()方法,该方法会返回当前经过排序、筛选后的所有数据上下文(本地JSONModel下无需额外参数,直接获取全部处理后数据):const aFilteredContexts = oBinding.getContexts(); - 遍历上下文对象提取数据并计算总和:
let total = 0; aFilteredContexts.forEach(oCtx => { const oItemData = oCtx.getObject(); total += oItemData.targetNumericField; // 替换为你实际的数值字段名 });
补充说明
如果使用的是服务器端模型(如ODataModel),由于默认可能存在分页,需要指定参数获取全部数据:
const totalCount = oBinding.getLength(); const aFilteredContexts = oBinding.requestContexts(0, totalCount);
getRows()仅返回可见行是因为UI5表格默认启用虚拟滚动,仅渲染当前视口内的行,而绑定对象中维护了经过排序、筛选后的完整数据集状态。
内容的提问来源于stack exchange,提问作者Roman
相关产品推荐
相关产品推荐

