我在xp:repeat中添加了一个Delete链接,用于删除该行的文档,并使用"rowVar"作为repeat访问其文档条目的变量。
下面是repeat中Delete链接的代码: <xp:link escape="true" id="link2"
style="width:50.0px;display:inline-block" text="Delete">
<xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="panelChemLog" immediate="true">
<xp:this.action><![CDATA[#{javascript:
var deleteUNID = rowVar.getUniversalID();
println(deleteUNID);
var doc:NotesDocument = database.getDocumentByUNID(deleteUNID);
println(doc.getCreated() );
doc.remove(true);
}]]></xp:this.action>
</xp:eventHandler>
</xp:link>
我包含了println语句,我可以在日志中看到设置了deleteUNID和doc对象,但是代码在最后的doc.remove(true)语句上抛出了这个异常:
Script interpreter error, line=5, col=5: [TypeError] Exception occurred calling method NotesDocument.remove(boolean) null
如何编写Delete链接以删除repeat中行中的文档?
这个错误我已经见过好几次了。只是为了确定一下。如果用户没有删除权限,它将抛出这样一个无意义的错误。
如果您查看Java堆栈跟踪,您可以在跟踪的底部确认以下内容。
NotesException: Notes error:您没有权限执行该操作操作
您可以使用database.queryAccessPrivileges(...)
方法来确保代码。