繁体   English   中英

Oracle Apex。如果有未保存的更改,请停止页面卸载(单击导航链接时)

[英]Oracle Apex.Stop a page unload(when clicked on a navigable link) if there are any unsaved changes

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

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

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

要取消未保存更改的检查,请使用JavaScript函数apex.page.cancelWarnOnUnsavedChanges(); 例如,如果使用DynamicAction保存数据,则添加附加的true动作,其类型为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");}
                  }           

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM