动态视图面板和onColumnClick(CSJS)事件的问题

时间:2015-07-28 18:30:38

标签: xpages xpages-extlib

使用动态视图面板并尝试使用客户端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>

1 个答案:

答案 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如下所示:

enter image description here

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")