xpages - 如果视图没有文档,则找不到行数据变量
问题描述
我有一个视图面板,我想根据文档中的值设置行中文本的颜色样式。
<xp:viewPanel id="dataView1" var="rowData" rows="5"
rowClasses="#{javascript:rowData.getColumnValue('objectStatus') == 'Inactive' ? 'status-inactive' : ''}">
如果视图至少有一个文档,这非常有效,但如果视图为空,我会收到以下错误:
com.ibm.xsp.exception.EvaluationExceptionEx:执行 JavaScript 计算表达式
时出错执行 JavaScript 计算表达式时出错
脚本解释器错误,line=1,col=10:[ReferenceError] 'rowData' not found
我猜它与rowData
不被创建有关,除非文件存在,但我不知道如何检查它。
我试过了if (rowData != null)
,!@IsNull(rowData)
但我仍然得到同样的错误。
我该如何解决这个问题?
(请注意,我迟到了 XPages 游戏。)
编辑:
感谢大家的输入,但我能够通过简单地检查视图计数来解决这个问题:
if (getComponent('dataView1').getRowCount() > 0) {
'Inactive'.equals(rowData.getColumnValue('objectStatus')) ? 'status-inactive' : ''
}
编辑2:
Knut 有一个稍微快一点的解决方案,所以我给了他信任。
解决方案
Knut 正确地解释了您正在尝试做的事情的解决方案。为什么它不起作用的答案略有不同。rowData
是一个合适的名称选择,它将是当前行的数据。但是您正在为整个 DataView 设置一个属性。整个 DataView 的当前行是什么?答案是,没有一个,因为您没有处理单独的行。
推荐阅读
- postgresql - PostgreSQL 12 中的 COLLATE 问题
- google-sheets - GoogleSheets 查询正则表达式替换
- lodash - Lodash:过滤多个属性
- python-3.x - Python Sqllite3:一次插入许多不同长度的列表
- ionic4 - 超过阈值后,Ion-item-option 不会扩展到全宽(反弹)
- c - 有人可以解释为什么这可以计算无符号整数中的设置位吗?
- c# - python pandas在Visual Studio中缺少必需的依赖项'numpy'
- html - 如何在 HTML 中用多种颜色突出显示文本的不同部分
- python - 根据 Pandas 数据框中的另一列和外部列表设置一列
- c - C lang“过滤器映射”实现免费