使用动态视图面板并尝试使用客户端JS的onColumnClick事件来获取用户单击的行的UNID或NoteID。但是,XPage不会加载下面显示的错误
执行JavaScript动作表达式时出错 脚本解释器错误,line = 1,col = 9:[ReferenceError]'找不到rowData'
JavaScript代码
1:rowData.getNoteID()
完整的XPage代码如下所示。有没有办法获取行信息来构建此事件处理程序?目标是使用客户端JS打开一个新选项卡以显示用户单击的文档。
霍华德
<xe:dynamicViewPanel
id="dynamicViewPanel1"
var="rowData"
indexVar="index">
<xe:this.data>
<xp:dominoView
var="view1"
viewName="testview">
</xp:dominoView>
</xe:this.data>
<xp:eventHandler
event="onColumnClick"
submit="false">
<xe:this.script><![CDATA[alert('#{javascript:rowData.getNoteID()}');]]></xe:this.script>
</xp:eventHandler></xe:dynamicViewPanel></xp:view>
答案 0 :(得分:2)
您无法在CSJS代码中使用UPDATE archivo
CROSS JOIN (SELECT @number := 0) AS x
SET numId = @number := @number + 1
WHERE estudio = "study"
ORDER BY numDisco ASC
计算行的noteId,因为这是在所有行呈现之前在服务器端上执行的。
使用alert('#{javascript:rowData.getNoteID()}')
属性。它允许您向呈现的表行添加属性。您要添加属性&#34; noteId&#34;:
rowAttrs
渲染的html如下所示:
onColumnClick事件在渲染时触发
<xe:this.rowAttrs>
<xp:attr
name="noteId"
value="#{javascript:rowData.getNoteID()}">
</xp:attr>
</xe:this.rowAttrs>
您可以使用<a id="view:_id1:dynamicViewPanel1:0:_id3:_internalColumnLink" href="#" ...
在onColumnClick&nbsp;的CSJS代码中获取此元素/节点。
从那里你&#34;步行&#34;向上thisEvent.target
两次,并使用属性&#34; noteId&#34;获取元素.parentNode
。
最后,使用<tr ..>
阅读该属性。
这是所有更改的示例:
.getAttribute("noteId")