保存记录前弹出信息

问题描述 投票:0回答:1

我有一个需求,需要在保存交互式网格中的记录之前弹出一个自定义的弹窗。

有什么方法可以实现吗?

oracle-apex oracle-apex-5.1
1个回答
1
投票

我看到你使用的是APEX 5.1,下面是你可以实现的方法。你可能要隐藏默认的SAVE按钮,并为这个例子创建一个新的按钮。首先,导航到你的IG区域> 高级> 静态ID并输入grid.然后,在Rendering下,导航到你的Page属性> CSS> Inline并添加以下内容。

#gridID button[data-action="save"] {
display: none !important;
}

现在,你要在这个页面上创建一个新的区域,这就是模态对话框.Layout > Position: Inline Dialogs.Layout > Position: Inline Dialogs. Appearance>Template.Inline Dialogs.Layout >位置:Inline Dialogs: Inline Dialog.Advanced > Static ID: Inline Dialogs. Advanced > Static ID: dialog (或一些独特的东西).在这个区域创建两个按钮。在这个区域创建两个按钮:Cancel和Ok。在IG区域创建一个按钮。SAVE.创建以下三个动态动作:在保存按钮上创建一个DA。对于True >Action,选择Execute JavaScript Code并输入以下内容。

openModal('dialog'); // use here the Static ID of modal dialog

在 "取消 "按钮上创建一个DA。这里,True >Action,选择执行JavaScript代码,并输入以下内容。

closeModal('dialog');

在 "确定 "按钮上创建一个DA。对于True >Action:选择提交页面,对于Settings >Request Button Name,输入OK.现在,导航到Processing,选择保存交互式网格数据的过程。在属性中,对于服务器端条件>按钮按下时,选择确定。

导航到 "保存 "按钮。在属性中,Advanced > Static ID,输入savenew.导航到Page属性,在JavaScript > Execute when Page Loads下,输入以下代码。

var oldbn = document.querySelector('#gridID button[data-action="save"]');
    var newbn = document.querySelector('#savenew');
    oldbn.parentNode.insertBefore(newbn, oldbn); 
© www.soinside.com 2019 - 2024. All rights reserved.