我想在关闭被叫对话框页面后刷新调用者页面(或提交页面)中的树区域。
答案 0 :(得分:2)
树区域不支持本机APEX刷新事件。您可以在此问题How to reload Oracle APEX 5.0 Tree dynamically
中阅读一些解释你可以用一种令人讨厌的方式做到这一点,而且讨厌我的意思是通过AJAX调用你的当前页面用树区域重新加载页面。
所以,我假设你有2页
在主页面上
test
OPENPOPUP
打开弹出窗口Dialog Closed
的动态操作(选择类型button
,按钮OPENPOPUP
)
Execute JavaScript Code
- 应该刷新树区域的代码在弹出页面上有
CLOSEPOPUP
,其中定义了动态操作,可触发真实操作Close Dialog
这是绑定主页面和模态页面的基础知识。您需要的是Execute JavaScript Code
,每次使用按钮CLOSEPOPUP
关闭弹出窗口时,它将加载最新版本的树区域。
我很可能绕过缺乏刷新支持。所以我编写了自己的Execute JavaScript Code
来从主页面加载树区域。
var
treeRegionStaticId = '#test',
currentTree = $(treeRegionStaticId);
parent = currentTree.parent();
$.ajax({
url: apex.server.url ({}, $v('pFlowStepId')),
dataType: 'html',
method : 'GET',
success: function( data ){
var
temp = $('<html />'),
newTree,
id;
temp.html( data );
//find region with id 'test'
newTree = temp.find( treeRegionStaticId );
//get id that is needed to call APEX tree constructor
id = newTree.find('[aria-label="Tree"]').attr('id');
//remove old tree region
currentTree.remove();
//append new tree region
newTree.appendTo( parent );
//call apex tree constructor
eval( 'apex.widget.tree.init( \''+id+'\', {}, gT'+(id.substr(1, id.length))+'Data,"S","",true,false,false,"a-Icon")' )
}
})
我已经在我的本地APEX 5上进行了测试,每次在模态页面中使用CLOSEPOPUP
按钮时,树状区域将在模态页面关闭后刷新。
上面的代码应该用作绑定到主页上事件Execute JavaScript code
的动态操作中的Dialog Closed
。
顺便说一下。数据库的负担与使用apex.submit
重新加载页面相同。