XPages-querysavedocument事件

XPages-querysavedocument事件,xpages,xpages-ssjs,Xpages,Xpages Ssjs,我第一次使用XPages querysavedocument事件,试图阻止XPage被保存。我试过了 return false; 但这并不会阻止文档的保存。阻止保存XPage的正确语法是什么 保存文档的代码为: <xp:this.action> <xp:saveDocument var="document1"></xp:saveDocument> </xp:this.action> 这与下面克努特的回答相同。我在querySaveDocum

我第一次使用XPages querysavedocument事件,试图阻止XPage被保存。我试过了

return false;
但这并不会阻止文档的保存。阻止保存XPage的正确语法是什么

保存文档的代码为:

<xp:this.action>
<xp:saveDocument var="document1"></xp:saveDocument>
</xp:this.action>

这与下面克努特的回答相同。我在querySaveDocument中的代码是

var选项:boolean=false;
对于(var k=1;k<7;k++){
选择=错误;
sectionname=“C1B”+k;
对于(变量n=1;n<7;n++){
fieldname=“C1B”+k+“\u R”+n;
if(getComponent(fieldname).getValue()!=“”){
选择=正确;
中断;};
}
if(选项==false){
viewScope.put(“EmptyRadioField”,节名);
var comp=getComponent(“RadioButtonValidationDialog”);
comp.show();
返回false;
}
}
当choice==false时,对话框将正确显示,但仍会保存XPage

我通过将验证转移到csjs解决了我的问题:

for(var k=1;k<7;k++){
选择=错误;
sectionname=“C1B”+k;
对于(变量n=1;n<7;n++){
fieldname=“C1B”+k+“\u R”+n;
var id=“视图:_id1:_id2:_id3:+fieldname;
fieldvalue=dijit.byId(id).getValue();
if(fieldvalue!=false){
选择=正确;
中断;};
}
if(选项==false){
sectionid=“视图:_id1:_id2:_id3:lbl”+sectionname;
sectionvalue=dojo.byId(sectionid).innerHTML;
警报(“请为“+sectionvalue”输入一个值);
返回false;
}
}   

这很好,尽管我做了很多尝试,但还是无法让它在SSJS中工作。

返回false是正确的

可能事件
querySaveDocument
根本不会执行。例如,如果使用
document1.save()
将文档保存在SSJS中,就会发生这种情况

您必须有一个保存操作,如


或使用


返回false是正确的

可能事件
querySaveDocument
根本不会执行。例如,如果使用
document1.save()
将文档保存在SSJS中,就会发生这种情况

您必须有一个保存操作,如


或使用



那么您正在寻找LotusScript中与
Continue=False
等价的XPages?是的,这就是我想要的,您是否故意将
}
放在
break
行中-我想,最后一个if应该在两个
for
循环中?是的,代码是我想要的。找到空字段后,将显示对话框。然而,这似乎发生在文档已经保存之后。choice==false条件在n循环外部触发,但在k循环内部触发。如果我用简单的“return=false;”替换上述代码,文档仍然会保存。因此,您正在寻找LotusScript中与
Continue=false
等效的XPages?是,这就是我想要的你故意把
}
放在
中断
行吗-我想,最后一个if应该在两个
for
循环中?是的,代码是我想要的。找到空字段后,将显示对话框。然而,这似乎发生在文档已经保存之后。choice==false条件在n循环外部触发,但在k循环内部触发。如果我用简单的“return=false;”替换上述代码,文档仍然会保存。或者您可以这样保存数据源:感谢您的回答,我已将代码添加到问题中。尽管尝试了您的有用建议,我无法使querySaveDocument事件工作,因此我用CSJS解决了问题。或者您可以这样保存数据源:感谢您的回答,我已将代码添加到问题中。尽管尝试了您的有用建议,但我无法使querySaveDocument事件工作,因此我用CSJS解决了问题。