Oracle Apex.Stop ape ape unload(单击可导航链接时),如果有任何未保存的更改



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

注意:我不能在页面级别上使用未保存更改选项的警告。因为IAM通过动态操作(PL/SQL代码)将我的页面中的值提交到DB。因此,即使单击"保存"并将数据插入数据库之后,当我尝试导航到其他页面时,它也会显示有关未保存更改的警告。我无法在单击"保存"按钮时使用提交页面,因为它正在刷新整个页面,并且不需要。

页面属性 -> Navigation-> Warn on Unsaved Changes设置为 Yes。之后,它将自动工作。在Apex 5中工作。

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

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

<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");}
                  }           

相关内容

最新更新