有没有办法从CCSJ或SSJS触发enableModifiedFlag背后的代码?

时间:2012-05-02 15:43:37

标签: xpages

如果我在自定义控件上将enableModifiedFlag属性设置为true;我在生成的页面源代码的底部看到以下代码。

当用户远离更改的页面时,一切正常;他们收到“未保存数据”的警告信息

<script type="text/javascript"> 

function view__id1__id2__id95__id98__id105_clientSide_onclick(thisEvent) {
return validateForm();

}

XSP.attachDirtyUnloadListener("This document may contain unsaved changes.");

XSP.addOnLoad(function() {
XSP.attachEvent("view:_id1:saveActionEventHandler", "view:_id1", "ondirtysave", null, true, 2);
XSP.attachEvent("view:_id1:_id2:_id95:_id98:_id105", "view:_id1:_id2:_id95:_id98:link1", "onclick", view__id1__id2__id95__id98__id105_clientSide_onclick, true, 2);
XSP.attachEvent("view:_id1:_id2:_id95:_id98:_id106", "view:_id1:_id2:_id95:_id98:link2", "onclick", null, true, 2);
XSP.attachDirtyListener("view:_id1:_id2:_id95:_id98:businessName11");

XSP.attachDirtyListener("view:_id1:_id2:_id95:_id98:businessName21");

XSP.attachDirtyListener("view:_id1:_id2:_id95:_id98:address11");

XSP.attachDirtyListener("view:_id1:_id2:_id95:_id98:address21");

XSP.attachDirtyListener("view:_id1:_id2:_id95:_id98:city1");

XSP.attachDirtyListener("view:_id1:_id2:_id95:_id98:cbState");

XSP.attachDirtyListener("view:_id1:_id2:_id95:_id98:zipCode1");

XSP.attachDirtyListener("view:_id1:_id2:_id95:_id98:phoneNumber1");

}); 

</script>

我有一个带有SSJS的退出按钮,如果文件被锁定,它会解锁文件并创建一个context.redirectToPage。问题是这个按钮没有触发enableModifiedFlag逻辑背后的代码,因此用户离开页面时不会被提示是否要留下未保存的数据。

有没有办法使用CCSJ或SSJS从此按钮触发enableModifiedFlag后面的代码?

2 个答案:

答案 0 :(得分:6)

通过使用来自CSJS的XSP._isDirty(),如果修改了任何字段,则可以获得 true ;如果未对表单进行任何更改,则可以 false

所以我将这段代码添加到CSJS下的按钮,以显示来自XPages的相同默认警报:

if (XSP._isDirty()){
    if (confirm ("Are you sure you want to navigate away from this page?" + "\n" + "\n" +
    "This document may contain unsaved changes." + "\n" + "\n" +
    "Press OK to continue, or Cancel to stay on the current page.")){
        return true;
    }else{
        return false;
    }
} else {
    return true;
}

答案 1 :(得分:3)

点击按钮,使用CSJS下方:XSP._setDirty(false,"") 这将使文档变得非脏,并允许用户导航到其他页面。