如何通过JavaScript动态加载/重载Power Apps Portal列表
Power Apps Portal 列表JavaScript动态重载实现方案
Power Apps Portal(简称PAP)原生支持通过JavaScript触发实体列表/子网格的动态重载,这属于PAP前端自定义扩展的标准支持能力,完全在官方允许的前端定制范畴内,不需要额外复杂开发,直接调用组件内置方法即可实现。
你已经在使用的loaded事件是列表渲染完成后的回调事件,主动触发重载时不需要改动原有监听逻辑,重载完成后loaded事件会自动触发,你写在回调里的行处理逻辑会正常执行。
核心实现方法
PAP的实体网格组件基于jQuery封装,内置了refresh事件用于主动触发列表重载,触发后组件会自动拉取最新数据、完成渲染,全程不需要手动处理数据请求和DOM渲染逻辑。
基础重载代码
// 重载页面上所有子网格 $(".entity-grid.subgrid").trigger("refresh"); // 精准重载指定子网格(推荐,避免影响页面其他列表) // 将data-name的属性值替换为你自己的子网格逻辑名称即可 $(".entity-grid.subgrid[data-name='替换为你的子网格逻辑名']").trigger("refresh");
如果需要重载页面主区域的普通实体列表(非子表单内嵌的子网格),将选择器替换为.entity-grid:not(.subgrid)即可,调用逻辑完全一致。
注意事项
- 不要自行编写AJAX请求调用列表接口实现重载,内置的
refresh方法会自动处理权限校验、列表参数拼接、分页/搜索/排序状态保留,不会破坏列表原有交互 - 如果需要在重载前动态调整列表过滤条件,可以先修改网格的内置筛选参数,再触发
refresh,重载时会自动按新的筛选条件拉取数据
完整使用示例
$(document).ready(function () { // 你原有写好的loaded事件监听逻辑无需任何改动 $(".entity-grid.subgrid").on("loaded", function () { // 处理列表行的原有逻辑 console.log("列表加载/重载完成,可操作行数据"); }); // 示例:为页面上自定义的重载按钮绑定点击事件 $("#customReloadBtn").on("click", function () { // 点击按钮时触发指定子网格重载 $(".entity-grid.subgrid[data-name='customer_order_subgrid']").trigger("refresh"); }); });
内容的提问来源于stack exchange,提问作者AGuyCalledGerald
相关产品推荐
相关产品推荐

