Xpages 如果视图没有文档,则找不到行数据变量

Xpages 如果视图没有文档,则找不到行数据变量,xpages,Xpages,我有一个视图面板,我想根据文档中的值设置行中文本的颜色样式 <xp:viewPanel id="dataView1" var="rowData" rows="5" rowClasses="#{javascript:rowData.getColumnValue('objectStatus') == 'Inactive' ? 'status-inactive' : ''}"> 编辑2: 克努特有一个稍微快一点的解决方案,所以我给了他信任。克努特正确地解释了你要做的事情的解决方案

我有一个视图面板,我想根据文档中的值设置行中文本的颜色样式

<xp:viewPanel id="dataView1" var="rowData" rows="5"
    rowClasses="#{javascript:rowData.getColumnValue('objectStatus') == 'Inactive' ? 'status-inactive' : ''}">
编辑2:


克努特有一个稍微快一点的解决方案,所以我给了他信任。

克努特正确地解释了你要做的事情的解决方案。为什么它不起作用的答案略有不同
rowData
是一个合适的名称,它将是当前行的数据。但是您正在为整个DataView设置一个属性。整个DataView的当前行是什么?答案是,没有一个是因为您没有处理单个行。

您可以使用
if(typeof rowData!=='undefined')…

如果视图为空,则rowData为“未定义”

<xp:viewPanel id="viewPanel1" var="rowData" rows="5"
    rowClasses="#{javascript:  
        if (typeof rowData !== 'undefined')
            rowData.getColumnValue('objectStatus') == 'Inactive' ? 'status-inactive' : ''
    }">


(此解决方案可能比.getRowCount():-)快几毫秒)

@Paul Stephen Withers谢谢Paul。但是,请看我对Knut评论的回应——基于rowData计算类确实有效。事实证明,我只需检查视图计数就可以绕过这个错误。我在我的帖子中添加了解决方案。@Paul:Jorey是对的,可以在
rowClasses
计算中使用row变量
rowData
。因此,我删除了我的第一个答案,并将其替换为“未定义”的解决方案。啊,谢谢。我通过检查视图的行数(参见我编辑的文章)以另一种方式解决了这个问题,但我不知道您可以检查“未定义”。这些信息将非常有用!
<xp:viewPanel id="viewPanel1" var="rowData" rows="5"
    rowClasses="#{javascript:  
        if (typeof rowData !== 'undefined')
            rowData.getColumnValue('objectStatus') == 'Inactive' ? 'status-inactive' : ''
    }">