2012-10-18 71 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索引尚未更新的新文檔。 –