Oracle Apex.Stop页面卸载(如果有任何未保存的更改,则单击可导航链接时)

时间:2017-12-05 15:56:25

标签: javascript html oracle oracle-apex

我目前正在使用oracle apex。我为我的页面创建了一个向导进度列表,列表中的标签为可导航链接。但是当用户点击这些链接导航到另一个页面时,我需要询问用户他是否确定存在未保存的更改,可能使用apex.message.confirm()。 在共享组件中创建列表时,我使用列表条目标签中的href="my_link"使其可导航。我知道如果我添加onClick="my_function();"我可以直接向该链接添加功能。但是在应用程序级别添加此javascript函数的位置? 我怎么做?任何想法?

注意:我无法在页面级别对未保存的更改选项使用警告。因为iam通过动态操作(pl / sql代码)将页面中的值提交给db。因此,即使单击保存并将数据插入数据库,当我尝试导航到其他页面时,它将显示未保存更改的警告。我不能在点击保存按钮时使用提交页面,因为它刷新整个页面并且不需要。

2 个答案:

答案 0 :(得分:0)

页面属性 - > Navigation - > Warn on Unsaved Changes设置为Yes。之后它会自动运行。适用于APEX 5。

要取消未保存更改的检查,请使用JavaScript函数apex.page.cancelWarnOnUnsavedChanges();。例如,如果使用DynamicAction保存数据,请添加类型为Execute JavaScript Code的其他true操作并在其中调用。

答案 1 :(得分:0)

通过在填写共享组件列表中的列表条目标签时提供的名称中使用onClick ="my_function();",您可以定义单击链接时需要执行的操作。"my_function"可以在function and global variable declaration部分的页面级别声明。 例如:

<a href="#" onClick="my_function('28');">&F300_LABEL_TEXT.</a>

将是共享组件的列表条目标签! 并在页面级别的function and global variable declaration部分。

    function my_function(page){
        if (apex.page.isChanged() == true)
          {apex.message.alert("there  are unsaved changes"); 
       else{apex.navigation.redirect("f?p="+$v('pFlowId')+":"+page+":"+$v("pInstance")+"::NO");}
                  }