打开对话框页面以更新一些数据后,我无法刷新交互式网格。
当用户单击“提交”按钮时,需要执行3件事 -提交页面并运行验证 -调用一个oracle proc,它将实际上对多个表运行复杂的更新。 -关闭对话框并刷新交互式网格。
关于此操作的文档很多,我正在关注一个stackoveflow问题“关闭模式对话框页面并刷新Oracle APEX页面”
但这对我不起作用。如果我在关闭对话框后手动刷新页面,则会显示更新。
我认为这是因为刷新在我的proc完成之前正在运行。我想知道程序完成后如何刷新整个页面,然后对话框将关闭。
我正在使用Java脚本而不是内置的APEX打开对话框:https://blogs.oracle.com/apex/extending-interaction-to-interactive-grids 我不确定这是否会引起问题。
感谢您提供的任何帮助。 代码中打开对话框: //在交互式网格所在的区域的属性下
function (config)
{
var $ = apex.jQuery,toolbarData = $.apex.interactiveGrid.copyDefaultToolbar(),toolbarGroup = toolbarData.toolbarFind("actions3");
toolbarGroup.controls.push(
{
type: "BUTTON",action: "updateCar",label: "Edit Selected Cars",hot: true,});
config.toolbarData = toolbarData;
config.initactions = function (actions)
{
// Defining the action for activate button
actions.add(
{
name: "updateCar",action: updateCar
});
}
function updateCar(event,focusElement)
{
var i,records,model,record,view = apex.region("ig_car").widget().interactiveGrid("getcurrentView");
var vid = "";
model = view.model;
records = view.getSelectedRecords();
if (records.length > 0)
{
for (i = 0; i < records.length; i++)
{
record = records[i];
// alert("Under Development " + record[1]);
vid = vid + record[1] + "||";
apex.item("P18_CAR").setvalue(vid);
}
}
}
return config;
}
隐藏的对话框网址:
begin
return sa_car_pkg.prepare_dialog_url( 'f?p=' || v('APP_ID') || ':2:'
|| V('APP_SESSION') || '::NO:RP:P2_CAR_ID
:$0$' );
end;
sa_car_pkg.prepare_dialog_url:
function prepare_dialog_url (
p_url in varchar2 )
return varchar2
is
begin
return regexp_substr(
apex_util.prepare_url( p_url ),'f\?p=[^'']*');
end prepare_dialog_url;
谢谢您的帮助!
这也位于交互式网格所在的区域的属性下
apex.navigation.dialog(url,{title:'EditCar',height:'auto',width:'720',maxWidth:'960',modal:true,dialog:null},"t-Dialog-page--standard","#btnOpenDialog");
} else {alert("Please Select at least one car");}
}
return config;