2012-10-18 70 views
2

我的XPage上有一个使用URL参数筛选的DominoView数据源,因此只显示与此parm匹配的文档。XPages - 对筛选视图进行排序

过滤后的文档需要按第二列(状态字段)的值排序。最好的办法是什么?

XPage正在使用jQuery Mobile进行演示,理想情况下,文档将显示在可折叠列表中,并且每个状态值都有一个单独的可折叠列表。

感谢您的任何提示。

+0

你对过滤值使用exactMatch吗? –

+0

不,我得到keysExactMatch =“false” –

+1

与完全匹配为false,您无法获得按视图中第二列排序的值。所以唯一的选择就是收集数据 –

回答

4

最简单的方法就是将该视图排序在第二列中,也是。不需要额外的代码。您可以有多个不需要相邻的已排序列。然后你可以有更好的过滤器键。例如,您有4个排序的列:您使用一个具有1-4个元素的数组作为过滤器。有1个元素可以过滤第一列。有2个元素,它过滤第一和第二列等。结果返回排序其余的排序列

+0

视图不需要按第一列进行排序,以便能够按该列进行筛选?从Designer Help ... keys =“key(s)”(dominoView)指定用于过滤视图的键。每个键(对多个键使用数组)对应于视图中的**排序**列。 –

+0

我想我可能不得不在第一列过滤之后自己对文档进行重新排序,以使它们按正确顺序排列。有什么想法吗?再次感谢! –

+1

您可以在第一个** 2 **列(或更多,如果您喜欢)上对视图进行排序。当您在第一个过滤器上过滤时,返回的文档将按剩余的已排序列进行排序。根据您的喜好,可以有尽可能多的分类列。你不能做的是即时更改排序顺序。随着更多的排序列,你可以有更精确的过滤器 – stwissel

2

不知道这是否会帮助您的情况,但我正在建立一个重复与视图数据源,我需要基于我存储在sessionScope中的用户值进行搜索。执行搜索时,我失去了视图中的默认排序。通过添加sortColumn和sortOrder,我得到了我期待的结果。

下面是源代码示例;

<xp:this.data> 
    <xp:dominoView 
     var="aprofiles" 
     viewName="embAssessmentProfiles" 
     sortOrder="ascending" 
     sortColumn="apName"> 
     <xp:this.search><![CDATA[#{javascript:compositeData.searchFilter;}]]></xp:this.search> 
    </xp:dominoView> 
</xp:this.data> 
+0

感谢您的建议。在你的例子中,当使用FT搜索搜索视图时,这将工作正常。不过,我需要显示视图(过滤和排序)而不是搜索,因为这将用于查找FT索引尚未更新的新文档。 –