APEX 刷新 - 甚至在数据库更改之前页面刷新问题
APEX refresh- issue with the page refreshing even before db changes
我在 apex 中创建了一个经典报告。它本质上是一个简单的通知系统。
此报告的目的是查看活动通知。但我也希望用户能够关闭每个通知。为此,我创建了一个名为 'Close' 的虚拟列,并将其设为 link。每行都有一个垃圾桶图标。当用户按下它时,它会将数据库中的一列从 IS_READ= 0 更新为 IS_READ=1。
该系统运行良好,但我无法正确刷新。
当我删除通知时,页面刷新,但它显示旧状态,通知仍然存在。但是,当我手动刷新页面时,通知将消失。
我尝试了各种刷新技术(动态操作)和触发器,但没有任何效果。
您能告诉我如何仅在数据库发生更改后才进行刷新吗?
这是我的页面配置方式的解释:
这是通知系统
这是我删除(更新)记录的动态操作。 .delete-irrow 是垃圾桶图标的 jQuery 选择器
将您的动态操作更改为 execute javascript code
。
然后在您的 javascript 代码中,使用如下成功回调:
apex.server.process("PP_UPDATETABLE", {}, {
success: function(pData) {
if (pData.success) {
apex.region('yourregionsstaticid').refresh();
}
}
})
之后,您唯一需要做的就是创建一个 AJAX 回调进程,名称为:PP_UPDATETABLE 在页面的处理部分,PL/SQL 来源为:
begin
update yourtable
set column = newvalue
where id = :YOURIDFROMGRID;
apex_json.open_object;
apex_json.write('success',true);
apex_json.close_object;
exception when others then
apex_json.open_object;
apex_json.write('success',false);
apex_json.close_object;
end;
此Ajax回调确保区域刷新代码仅在您定义的AJAX过程成功返回后执行。
如果您需要进一步的帮助或详细信息,我建议您使用相同的 grid/table 等创建一个 APEX 示例应用程序并共享 link 和凭据。
我在 apex 中创建了一个经典报告。它本质上是一个简单的通知系统。
此报告的目的是查看活动通知。但我也希望用户能够关闭每个通知。为此,我创建了一个名为 'Close' 的虚拟列,并将其设为 link。每行都有一个垃圾桶图标。当用户按下它时,它会将数据库中的一列从 IS_READ= 0 更新为 IS_READ=1。
该系统运行良好,但我无法正确刷新。
当我删除通知时,页面刷新,但它显示旧状态,通知仍然存在。但是,当我手动刷新页面时,通知将消失。
我尝试了各种刷新技术(动态操作)和触发器,但没有任何效果。
您能告诉我如何仅在数据库发生更改后才进行刷新吗?
这是我的页面配置方式的解释:
这是通知系统
这是我删除(更新)记录的动态操作。 .delete-irrow 是垃圾桶图标的 jQuery 选择器
将您的动态操作更改为 execute javascript code
。
然后在您的 javascript 代码中,使用如下成功回调:
apex.server.process("PP_UPDATETABLE", {}, {
success: function(pData) {
if (pData.success) {
apex.region('yourregionsstaticid').refresh();
}
}
})
之后,您唯一需要做的就是创建一个 AJAX 回调进程,名称为:PP_UPDATETABLE 在页面的处理部分,PL/SQL 来源为:
begin
update yourtable
set column = newvalue
where id = :YOURIDFROMGRID;
apex_json.open_object;
apex_json.write('success',true);
apex_json.close_object;
exception when others then
apex_json.open_object;
apex_json.write('success',false);
apex_json.close_object;
end;
此Ajax回调确保区域刷新代码仅在您定义的AJAX过程成功返回后执行。 如果您需要进一步的帮助或详细信息,我建议您使用相同的 grid/table 等创建一个 APEX 示例应用程序并共享 link 和凭据。