想要在“视图面板”列中执行操作以设置过滤条件并打开另一个XPage

时间:2013-05-07 14:28:51

标签: view hyperlink xpages

我有一个视图面板控件,显示文档列表和每个文档的一些信息。其中一列是文档中记录的项目的存储位置。我想使该列成为可点击链接,因此当用户单击它时,它们将转到另一个显示具有该存储位置的所有文档的XPage。一个例子:

ID          Location
12345678    ABCD
98765432    WXYZ
11223344    ABCD

单击该ID将打开该文档,但单击ABCD将转到XPage,该XPage将显示位置为ABCD的所有文档。

这就是我对列值的看法:

<xp:this.value><![CDATA[#{javascript:return "<script>sessionScope.set(\"trayId\",\"+rowData.getColumnValue('StorageLocationID')+\");</script><a href=\"./location.xsp\">"+rowData.getColumnValue('StorageLocationID')+"</a>";}]]></xp:this.value>

它正确地显示了值并转到了正确的XPage但我无法弄清楚如何设置sessionScope变量,我可以使用它来过滤location.xsp上的数据源以显示一个位置。我想我必须在列中创建HTML,因为当我将“在列中显示值显示为链接”并使用onclick事件为位置名称设置sessionScope变量然后打开location.xsp时,它会引发错误。

我可能会在重复控件中执行此操作,但似乎应该有一种方法可以在视图面板中进行此操作,因为我觉得我非常接近。

1 个答案:

答案 0 :(得分:2)

不要设置sessionScope变量,只需将参数?location=添加到URL:

<xp:this.value><![CDATA[#{javascript:"<a href=\"./location.xsp?location=" + rowData.getColumnValue('StorageLocationID') + "\">"+rowData.getColumnValue('StorageLocationID')+"</a>"}]]></xp:this.value>

使用contentType="HTML"标记位置列,并使用location.xsp中的网址位置参数来过滤您的位置视图:

    <xp:this.data>
        <xp:dominoView var="viewLocations" viewName="Locations"
            keys="#{javascript:context.getUrlParameter('location')}"
            keysExactMatch="true">
        </xp:dominoView>
    </xp:this.data>