首页 > 解决方案 > Xpages 在重复控件中过滤和排序数据?

问题描述

我有一个重复控件,它显示附件列表,这些附件作为响应文档保存到当前文档。现在我只在一个列表中看到所有主要文档和响应文档。我该如何 1) 过滤视图以仅包含响应文档而不包含主文档?2) 过滤视图以仅包含对当前文档的响应?我尝试在数据源上使用按列值过滤,但我无法弄清楚。我的 Xpage 数据源是“document1”文档和“Requirements”视图

<xp:dominoView var="Atts" viewName="Requirements">
    </xp:dominoView>



<xp:repeat id="AttsContainer" rows="100"
var="Attachments" repeatControls="true" value="#{Atts}">
<xp:panel id="AttsPanel">                           
    <xp:table style="width:100.0%;border-width:thin;border-color:rgb(0,0,0);border-style:solid">
        <xp:tr>
            <xp:td style="width:234.0px">
                <xp:text escape="true"
                    id="computedField1" value="#{Attachments.AttName}">
                </xp:text>
            </xp:td>
            <xp:td><xp:text escape="true" id="computedField2">
        <xp:this.value><![CDATA[#{javascript:var doc:NotesDocument = Attachments.getDocument();

    var sUNID = doc.getUniversalID();
    sUNID}]]></xp:this.value>
    </xp:text></xp:td>
            <xp:td>
                <xp:link escape="true"
                    id="link2">

                    <xp:this.text><![CDATA[#{javascript:Attachments.getColumnValue("Files")}]]></xp:this.text>
                <xp:this.value><![CDATA[#{javascript:var doc:NotesDocument = Attachments.getDocument();
    var sUNID = doc.getUniversalID();
    ATT = Attachments.getColumnValue("Files");
    "/bid.nsf/0/" + sUNID + "/$FILE/" + ATT}]]></xp:this.value></xp:link></xp:td>
        </xp:tr>
    </xp:table></xp:panel>

标签: filterxpagesrepeat

解决方案


从我的头顶:

  • 创建一个仅显示使用响应表单创建的文档的视图。
  • 禁用“在层次结构中显示响应文档”属性
  • 使用此公式添加分类的第一列:@Text($ref)

这为您提供了一个视图,其中所有响应均按其父母 unid 进行分类。您在数据源中使用该视图并设置categoryFilter主文档的unid。


推荐阅读