我有一页有大约 8 个标签区域。每个区域都有一个 select 语句。它们在同时访问页面(页面加载)时执行。因为我有 8 个选择语句同时执行,所以它会带来纯粹的性能。我的问题是如何仅在活动区域上执行查询。
2 回答
你可以试试这个
- 在事件“页面加载”上创建动态操作
- 创建真正的动作“执行 javaScript 代码”:
window.setTimeout(function(){ $('.a-Region-carouselLink').click(function(){ apex.event.trigger(document, 'tabChanged', this); }) }, 500);
将“页面加载时触发”设置为“是”
创建自定义事件“tabChanged”
在 DA 自定义事件“执行 JavaScript 代码”中创建真正的操作:
console.log(this.data);
测试它 - 每次单击选项卡时,DA 都会打印到控制台当前单击的锚点。
当然,因为有0.5s的延迟,它并不完美。它仍然允许您收听“单击”的选项卡。
为了使您的方案发挥作用,我会这样做:
- 创建页面项
PX_TAB
- 在自定义事件中创建真正的动作以设置
PX_TAB
- 在自定义事件中创建真实操作以刷新选项卡中的报告
PX_TAB
在要刷新的每个报告中将“要提交的页面项目”设置为“ ”- 将条件添加到每个报告比较项目的值- 只有在具有预期值
PX_TAB
时才会执行 SQL 查询PX_TAB
编辑 2016.08.13
您可以通过简单地将侦听器添加到选项卡来绑定选项卡
$(document).on('mousedown', 'a.t-Tabs-link', function(){
//this is an anchor used as tab
console.log(this)
})
如果您想以 APEX 方式保留它,请在Execute when Page Loads
页面部分的下方输入代码或创建新的动态操作On page load
$(document).on('mousedown', 'a.t-Tabs-link', function(){
apex.event.trigger(document,'tabChanged', this);
})
然后添加绑定到Custom event
命名的动态操作tabChanged
。每当单击选项卡时,就会触发 tabChanged 事件,Execute JavaScript Code
您可以通过以下方式引用当前选项卡this.data
Try to create buttons and set behavior of each button to display required region and hide others (create hidden item, then create buttons that set values 1,2,3 etc., then add conditions to every region to display region 1 only when hidden item equal 1, region 2 for item value 2 etc.