Xpages DataView控件和搜索结果的自定义排序

Xpages DataView控件和搜索结果的自定义排序,xpages,xpages-ssjs,xpages-extlib,Xpages,Xpages Ssjs,Xpages Extlib,我需要为FTSearch创建自定义排序(可以来自视图,结果存储在viewEntryCollection中,也可以来自数据库,结果存储在NotesDocumentCollection中)。顺序与在文档的主题和类别中找到的搜索词的数量有关。这部分工作正常,但我不确定函数需要返回什么对象类型才能在dataview控件中使用结果。它是NotesDocumentCollection、JavaScript数组还是任何其他对象?以及如何在不同的列中推送/访问所需的值 我看过很多对搜索结果进行排序的代码,但它们

我需要为FTSearch创建自定义排序(可以来自视图,结果存储在viewEntryCollection中,也可以来自数据库,结果存储在NotesDocumentCollection中)。顺序与在文档的主题和类别中找到的搜索词的数量有关。这部分工作正常,但我不确定函数需要返回什么对象类型才能在dataview控件中使用结果。它是NotesDocumentCollection、JavaScript数组还是任何其他对象?以及如何在不同的列中推送/访问所需的值

我看过很多对搜索结果进行排序的代码,但它们都对特定的列进行排序


谢谢:D

我找到了一种方法,这是我的帖子:

Brad Balassatis也有一个帖子链接到那里

我后来发现(在我完成上述操作之后),您可以创建一个NotesViewEntryCollection,并在其上调用一个FTSeach

干杯, 布莱恩

Rodigo建议不要链接到答案,下面是我的帖子链接的文本:

带有NotesViewEntryCollection的数据视图 Brian A Moore | 1月20日| 4条评论| 388次访问 因此,我一直想使用日期视图有一段时间了,但我没有时间坐下来想办法解决这个问题。(这里是soap框)给出的例子非常复杂。我确实有一个基于布拉德的工作,我将张贴样本。但是,当我把这些总结起来的时候,这里有一个小道消息。 当您使用数据视图时,您只能选择Domino视图。我想看看你能不能用收藏品来做。事实证明你可以。我所做的是(在我奇怪的发现过程中)基于视图中所有条目的NotesViewEntryCollection创建了一个DataTable。我从中复制了节点并替换了dataView中的节点。并且页面呈现。我只放了一个寻呼机,看看它是否有完整的功能,这是工作,所以我怀疑其他各种事情也会。 这是整个XPage。只需更改视图名称和获得的字段,它就可以工作。另外,如果您还没有开始使用数据视图,这也是一个开始:)


干杯,
布莱恩

你试过这些吗?问题是DataView似乎需要Notes视图。我想弄清楚的是,使用DataView显示自定义排序的搜索结果是否可行。因此,现在我有了一个JS对象,其中包含一些属性,其中一个是一个NotesDocuments数组,按我想要的方式排序。我可以在数据视图中将其用作数据源吗?如果我使用repeat控件,那么如何从该数组访问文档的字段呢?再次感谢谢洛。不确定在数据视图中只能使用视图。在repeat中,可以将文档数据源添加到repeat中的面板,并从数据源访问值。或者您可以使用x.getDocument().getItemValueString(“fld”)直接访问repeat中的值,其中x是repeat变量。Thomas,我最后做的就是:使用数据表而不是数据视图,并使用Notesdocument的方法获取我的值,因为这是存储在结果数组中的对象。但这太糟糕了,因为应用程序经常使用DataView,所以在相同类型的对象中显示结果对用户来说是非常好的。感谢您的帮助:DAvoid链接到答案,因为他们可能不会对未来起作用,请在自己的答案中指出最相关的方面
    <?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" xmlns:xe="http://www.ibm.com/xsp/coreex">

    <xe:dataView
        id="dataView1"
        var="rowData"><xp:this.facets>
    <xp:pager
        layout="Previous Group Next"
        partialRefresh="true"
        id="pager1"
        xp:key="pagerTopLeft">
    </xp:pager></xp:this.facets>
        <xp:this.value><![CDATA[#{javascript:var nView:NotesView=database.getView('Name');
var nVEC:NotesViewEntryCollection=nView.getAllEntries();
return nVEC;}]]></xp:this.value>
        <xe:this.summaryColumn>
            <xe:viewSummaryColumn value="#{javascript:rowData.getDocument().getItemValueString('Subject');}"></xe:viewSummaryColumn>
        </xe:this.summaryColumn>
    </xe:dataView></xp:view>