我可以在数据表中的(链接)列中使用onclick事件设置范围变量吗?

时间:2013-03-13 15:46:39

标签: datatable xpages

范围变量用于将选定的rowdata id传递给显示更多详细信息的面板。当链接列位于视图控件中而不是数据表时,此方法有效。下面的示例使用了requestScope,但我还尝试了sessionScopeviewScope来获取详细信息面板的dialogToolTip版本。在每种情况下,都会发生完全或部分刷新,但范围变量始终为null。注意:数据表通常嵌套在选项卡式面板中,但我也在没有表嵌套的干净XPage上进行了测试,结果相同。 Domino版本8.5.3 w /扩展lib。

<xp:column id="column11">
    <xp:this.facets>
        <xp:label value="INVOICE NBR" id="label7" xp:key="header"
            style="font-weight:bold">
        </xp:label>
    </xp:this.facets>
    <xp:link escape="true" id="link1" value="#{id:column11}">
        <xp:this.text><![CDATA[#{javascript:return rowdoc.getItemValueString("StorInvID");}]]>
        </xp:this.text>
        <xp:eventHandler event="onclick" submit="true"
            refreshMode="complete">
            <xp:this.action><![CDATA[#{javascript:requestScope.invCompare = rowdoc.getItemValueString("StorInvID");}]]></xp:this.action>
        </xp:eventHandler>
    </xp:link>
</xp:column>

1 个答案:

答案 0 :(得分:1)

在我之后重复: 客户端始终优先于服务器端: - )

xp:link控件的value属性导致服务器端事件根本不执行。单击链接时,它只对相关资源执行HTTP GET。

因此,如果删除value属性,则应触发onclick serverside事件。然后,您可以使用context.redirectToPage("pagename")执行服务器端重定向。