Oracle Apex 23.1.2:交互式报表返回0行时弹出提示消息
APEX交互式报表无数据时弹出提示
需求:交互式报表点击搜索按钮刷新后,若返回0行数据,弹出提示告知用户未找到相关条目。已创建报表刷新时触发的动态动作,使用以下JavaScript代码:
var rowCount = $( '#RegionName .t-Body-content tr' ).length; if (rowCount === 0 ) { alert( 'No entries found.' ); }
注意事项与优化方案
- 原代码存在判断失效问题:当报表无数据时,APEX会自动渲染一行包含"No data found"提示的默认行,此时
rowCount等于1而非0,导致判断逻辑不生效。 - 修正后的代码:通过排除APEX默认空数据提示行来准确判断是否有有效数据:
var $reportRows = $( '#RegionName .t-Body-content tr' ); // 过滤掉APEX自带的空数据提示行 var hasValidData = $reportRows.not('.a-IRR-noData').length > 0; if (!hasValidData) { alert('未找到相关条目。'); }
- 选择器验证:
#RegionName需替换为你的交互式报表区域的静态ID(可在区域属性的「高级」选项卡中查看),确保能正确定位报表元素。 - 提示样式升级:如果想使用APEX原生提示组件替代浏览器默认弹窗,可调用官方API提升体验:
if (!hasValidData) { apex.message.showErrors([{ type: "error", location: ["page"], message: "未找到相关条目,请调整搜索条件后重试。", unsafe: false }]); }
内容的提问来源于stack exchange,提问作者Richard Hig
相关产品推荐
相关产品推荐

