范围变量用于将选定的rowdata id传递给显示更多详细信息的面板。当链接列位于视图控件中而不是数据表时,此方法有效。下面的示例使用了requestScope
,但我还尝试了sessionScope
和viewScope
来获取详细信息面板的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>
答案 0 :(得分:1)
在我之后重复: 客户端始终优先于服务器端: - )
xp:link控件的value属性导致服务器端事件根本不执行。单击链接时,它只对相关资源执行HTTP GET。
因此,如果删除value属性,则应触发onclick serverside事件。然后,您可以使用context.redirectToPage("pagename")
执行服务器端重定向。