首页 > 解决方案 > APEX 关闭对话框在关闭时不刷新交互式网格

问题描述

打开对话框页面以更新某些数据后,我无法刷新交互式网格。

当用户单击提交按钮时,需要运行 3 件事——提交页面并运行验证——调用一个 oracle proc,它实际上将对多个表运行复杂的更新。-- 关闭对话框并刷新交互式网格。

有很多关于这样做的文档,我正在关注 stackoveflow 问题“关闭模式对话框页面并刷新页面 Oracle APEX”

但这对我不起作用。如果我在关闭对话框后手动刷新页面,则会出现更新。

我认为这是因为在我的 proc 完成之前刷新正在运行。我想知道在我知道 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",
      label: "Edit Selected Cars",
      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;

标签: oracleoracle-apexoracle-apex-5.1

解决方案


推荐阅读