在计算视图列时,beforePageLoad失败

时间:2015-07-08 17:44:43

标签: xpages

我有一个打开xpage的视图控件。当xpage打开时,将触发beforePageLoad事件。它检查文档的特定字段中是否有任何附件被打开,如果有,则返回文件名列表。这工作正常。然后,我被要求更改视图的其中一列中显示的内容。我在视图控件的数据部分添加了一个变量来访问该行。然后我在列中添加了一些javascript以不同的方式显示数据。这很有效,它显示了想要的数据。但是,当我现在点击链接打开xpage时,当beforePageLoad事件触发时,那里的代码现在失败了。它在已加星标的行中出现此错误:

Script interpreter error, line=9, col=49: 'closureField' is null at
 [/Function_ReturnListOfClosureAttachmentNames.jss].ReturnListOfClosureAttachmentNames(CCEB1351591847CB85257E7C005EF68C)

function ReturnListOfClosureAttachmentNames(ltDoc ){
var closureAttachmentFileNames = "";
var thisLT = ltDoc;
var closureField:NotesRichTextItem = thisLT.getFirstItem("closeAttachments");
*>>> var eos:java.util.Vector = closureField.getEmbeddedObjects();<<<
var eosi:java.util.Iterator = eos.iterator();
while (eosi.hasNext()) {
    var eo:NotesEmbeddedObject = eosi.next();
    closureAttachmentFileNames = closureAttachmentFileNames +","+eo.getName();
}

return closureAttachmentFileNames;

}

我从beforePageLoad事件中调用此函数并将其传递给currentDocument.getDocument()。我想在更改了“查看列”列中的列显示数据后,我可能丢失了文档上下文。到&#39;计算值&#39;但我不确定。任何想法都将不胜感激。

谢谢!

克莱姆

1 个答案:

答案 0 :(得分:1)

想出来:当我为视图分配变量时,当您单击该视图中的链接列时,它会将当前的ViewEntry加载到上下文中而不是当前文档中。因此,我将所选ViewEntry中的doc的unid放在应用程序范围变量中,并在打开xPage时将其返回到Document Id属性。我现在必须更新我的所有观点,但幸运的是没有太多。感谢您与我共同努力!

克莱姆 -