在视图中,我将所有属性中的var设置为“rowVar”。 viewColumn的代码。
if (!rowVar.getDocument().getItemValue("NAPAKA").isEmpty()) { return "NAPAKA"}
else {return rowVar.getColumnValue("STANJE")};
this.rowClasses的代码:
if (!rowVar.getDocument().getItemValue("NAPAKA").isEmpty())
{return "hoverCls napakaBlue";}
else{return "hoverCls";}
以前使用无文档进行查看,但稍后会抛出异常。为什么呢?
答案 0 :(得分:3)
第一个属于视图列。因此,如果没有文档,则不会对其进行评估。
然而,每次渲染视图时都会评估第二个。因此,如果没有文档,则rowVar将不存在,并且您的代码将失败。
在您的rowClasses公式中,您可以添加以下条件:
if(requestScope.containsKey("rowVar") && ...(your conditions)...)
由于row无论如何都不会存在,因此null检查也会失败。
答案 1 :(得分:1)
Serdar的回答是正确的。这个答案只是关于效率。
如果要处理Domino View数据源中的许多文档,则应将NAPAKA列添加到Domino视图中,并避免将rowVar.getDocument()放到基础文档中,而这些文档效率不高。此外,您可以使用EL而不是SSJS来提高效率。例如:
<xp:viewColumn id="viewColumn3" value="#{(empty rowVar.NAPAKA) ? rowVar.STANJE: rowVar.NAPAKA}">
<xp:this.facets>
<xp:viewColumnHeader xp:key="header"
id="viewColumnHeader3" value="column header">
</xp:viewColumnHeader>
</xp:this.facets>
</xp:viewColumn>