Xpages 有没有办法从CCSJ或SSJS触发代码隐藏启用修改滞后?

Xpages 有没有办法从CCSJ或SSJS触发代码隐藏启用修改滞后?,xpages,Xpages,如果我在自定义控件上将enableModifiedFlag属性设置为true;我在生成的页面源代码的底部看到以下代码 当用户离开更改的页面时,一切正常;他们收到“未保存数据”的警报消息 函数视图\uuuuId1\uuuId2\uuuId95\uuuId98\uuuId105\uClientSide\uOnClick(此事件){ 返回validateForm(); } attachDirtyUnloadListener(“此文档可能包含未保存的更改”); XSP.addOnLoad(函数(){

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

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


函数视图\uuuuId1\uuuId2\uuuId95\uuuId98\uuuId105\uClientSide\uOnClick(此事件){
返回validateForm();
}
attachDirtyUnloadListener(“此文档可能包含未保存的更改”);
XSP.addOnLoad(函数(){
attachEvent(“视图:_id1:saveActionEventHandler”,“视图:_id1”,“ondirtysave”,null,true,2);
XSP.attachEvent(“视图:_id1:_id2:_id95:_id98:_id105”,“视图:_id1:_id2:_id95:_id98:link1”,“onclick”,视图:_id1:u id2:u id95:u id105:id105:id105:id95:id98:link1”,“onclick”,true,2);
附加事件(“视图:_id1:_id2:_id95:_id98:_id106”,“视图:_id1:_id2:_id95:_id98:link2”,“onclick”,null,true,2);
attachDirtyListener(“视图:_-id1:_-id2:_-id95:_-id98:businessName11”);
attachDirtyListener(“视图:_-id1:_-id2:_-id95:_-id98:businessName21”);
attachDirtyListener(“视图:_-id1:_-id2:_-id95:_-id98:address11”);
attachDirtyListener(“视图:_-id1:_-id2:_-id95:_-id98:address21”);
attachDirtyListener(“视图:_id1:_id2:_id95:_id98:city1”);
attachDirtyListener(“视图:_id1:_id2:_id95:_id98:cbState”);
attachDirtyListener(“视图:_-id1:_-id2:_-id95:_-id98:zipCode1”);
attachDirtyListener(“视图:_-id1:_-id2:_-id95:_-id98:phoneNumber1”);
}); 
我有一个带有SSJS的退出按钮,如果文档被锁定,它将解锁文档,并生成context.redirectToPage。问题在于,此按钮没有触发enableModifiedFlag逻辑背后的代码,因此如果用户希望带着未保存的数据离开页面,则不会收到提示


是否有任何方法可以使用CCSJ或SSJS从此按钮触发代码隐藏启用修改滞后?

单击按钮后,使用下面的CSJS:
XSP.\u setDirty(false),”

这将使文档不脏,并允许用户导航到其他页面。

通过使用
XSP.\u isDirty()
从CSJS,如果修改了任何字段,您可以获得true,如果未对表单进行任何更改,则可以获得false

因此,我在CSJS下的按钮中添加了这段代码,以显示来自XPages的相同默认警报:

if(XSP.\u isDirty()){
如果(确认)(“您确定要离开此页面吗?”+“\n”+“\n”+
“此文档可能包含未保存的更改。”+“\n”+“\n”+
“按“确定”继续,或按“取消”停留在当前页面。”){
返回true;
}否则{
返回false;
}
}否则{
返回true;
}

感谢德克兰的回复。我想要的是触发警告消息给用户,这样他们就可以决定是否要导航到其他页面。此时,当用户单击按钮时,此警告不会显示。请尝试执行相反的操作,将dirty设置为true:XSP._setDirty(true)(“”)。记住,这是客户端JS。谢谢Per Henrik,但是,它添加了XSP。_setDirty(true,“”)每次按下按钮,我都会得到提示。只是警告一下。XSP._isDirty是一个内部调用。因此,不能保证该调用在未来的版本中会像上面所预期的那样工作,甚至不能保证会在那里工作。
<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>