在xPages中筛选分类视图面板

在xPages中筛选分类视图面板,xpages,Xpages,我有一个视图面板,其中一个分类视图是it源。我正在查看的数据可以有各种状态(状态为“已提交”,状态为“已批准”)等 <xp:viewPanel rows="30" id="viewPanel1"> <xp:this.facets> <xp:pager partialRefresh="true" layout="Previous Group Next" xp:key="headerPager" id="pager1"&g

我有一个视图面板,其中一个分类视图是it源。我正在查看的数据可以有各种状态(状态为“已提交”,状态为“已批准”)等

<xp:viewPanel rows="30" id="viewPanel1">
    <xp:this.facets>
        <xp:pager partialRefresh="true" layout="Previous Group Next"
            xp:key="headerPager" id="pager1">
        </xp:pager>
    </xp:this.facets>
    <xp:this.data>
        <xp:dominoView var="view1"
            viewName="vwRequestsAllByClientsName">
        </xp:dominoView>
    </xp:this.data>
    <xp:this.rendered><![CDATA[#{javascript:var v = getComponent("comboBoxFilterBy").getValue();
 return (v=="All" || v==null);
}]]></xp:this.rendered>
    <xp:viewColumn columnName="ClientName" id="viewColumn1">
        <xp:viewColumnHeader value="ClientName"
            id="viewColumnHeader1">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="RequestNum" id="viewColumn2">
        <xp:viewColumnHeader value="Request #"
            id="viewColumnHeader2">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="APPSNo" id="viewColumn3">
        <xp:viewColumnHeader value="APPS Number"
            id="viewColumnHeader3">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="LoanType" id="viewColumn4">
        <xp:viewColumnHeader value="Loan Type"
            id="viewColumnHeader4">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="LoanAmount" id="viewColumn5">
        <xp:viewColumnHeader value="Loan Amount"
            id="viewColumnHeader5">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="Term" id="viewColumn6">
        <xp:viewColumnHeader value="Term" id="viewColumnHeader6">
        </xp:viewColumnHeader>
    </xp:viewColumn>

</xp:viewPanel>
<xp:viewPanel rows="30" id="viewPanel2">
    <xp:this.facets>
        <xp:pager partialRefresh="true" layout="Previous Group Next"
            xp:key="headerPager" id="pager2">
        </xp:pager>
    </xp:this.facets>
    <xp:this.data>
        <xp:dominoView var="view2"
            viewName="vwRequestsAllByStatusClientsName">
            <xp:this.categoryFilter><![CDATA[#{javascript:var v = getComponent("comboBoxFilterBy").getValue();
我的页面上有一个组合框,允许我选择要在视图中显示的状态。这一切都很好,只是xPages视图在显示分类视图时做了与客户端相同的恼人事情。也就是说,当全文索引搜索过滤器就位时,它不会显示已分类的列

<xp:viewPanel rows="30" id="viewPanel1">
    <xp:this.facets>
        <xp:pager partialRefresh="true" layout="Previous Group Next"
            xp:key="headerPager" id="pager1">
        </xp:pager>
    </xp:this.facets>
    <xp:this.data>
        <xp:dominoView var="view1"
            viewName="vwRequestsAllByClientsName">
        </xp:dominoView>
    </xp:this.data>
    <xp:this.rendered><![CDATA[#{javascript:var v = getComponent("comboBoxFilterBy").getValue();
 return (v=="All" || v==null);
}]]></xp:this.rendered>
    <xp:viewColumn columnName="ClientName" id="viewColumn1">
        <xp:viewColumnHeader value="ClientName"
            id="viewColumnHeader1">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="RequestNum" id="viewColumn2">
        <xp:viewColumnHeader value="Request #"
            id="viewColumnHeader2">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="APPSNo" id="viewColumn3">
        <xp:viewColumnHeader value="APPS Number"
            id="viewColumnHeader3">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="LoanType" id="viewColumn4">
        <xp:viewColumnHeader value="Loan Type"
            id="viewColumnHeader4">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="LoanAmount" id="viewColumn5">
        <xp:viewColumnHeader value="Loan Amount"
            id="viewColumnHeader5">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="Term" id="viewColumn6">
        <xp:viewColumnHeader value="Term" id="viewColumnHeader6">
        </xp:viewColumnHeader>
    </xp:viewColumn>

</xp:viewPanel>
<xp:viewPanel rows="30" id="viewPanel2">
    <xp:this.facets>
        <xp:pager partialRefresh="true" layout="Previous Group Next"
            xp:key="headerPager" id="pager2">
        </xp:pager>
    </xp:this.facets>
    <xp:this.data>
        <xp:dominoView var="view2"
            viewName="vwRequestsAllByStatusClientsName">
            <xp:this.categoryFilter><![CDATA[#{javascript:var v = getComponent("comboBoxFilterBy").getValue();
除了为每个状态创建一个视图和一个对应的xpage之外,还有没有其他方法可以按状态进行筛选并仍然显示分类字段?

如果我理解正确:
<xp:viewPanel rows="30" id="viewPanel1">
    <xp:this.facets>
        <xp:pager partialRefresh="true" layout="Previous Group Next"
            xp:key="headerPager" id="pager1">
        </xp:pager>
    </xp:this.facets>
    <xp:this.data>
        <xp:dominoView var="view1"
            viewName="vwRequestsAllByClientsName">
        </xp:dominoView>
    </xp:this.data>
    <xp:this.rendered><![CDATA[#{javascript:var v = getComponent("comboBoxFilterBy").getValue();
 return (v=="All" || v==null);
}]]></xp:this.rendered>
    <xp:viewColumn columnName="ClientName" id="viewColumn1">
        <xp:viewColumnHeader value="ClientName"
            id="viewColumnHeader1">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="RequestNum" id="viewColumn2">
        <xp:viewColumnHeader value="Request #"
            id="viewColumnHeader2">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="APPSNo" id="viewColumn3">
        <xp:viewColumnHeader value="APPS Number"
            id="viewColumnHeader3">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="LoanType" id="viewColumn4">
        <xp:viewColumnHeader value="Loan Type"
            id="viewColumnHeader4">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="LoanAmount" id="viewColumn5">
        <xp:viewColumnHeader value="Loan Amount"
            id="viewColumnHeader5">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="Term" id="viewColumn6">
        <xp:viewColumnHeader value="Term" id="viewColumnHeader6">
        </xp:viewColumnHeader>
    </xp:viewColumn>

</xp:viewPanel>
<xp:viewPanel rows="30" id="viewPanel2">
    <xp:this.facets>
        <xp:pager partialRefresh="true" layout="Previous Group Next"
            xp:key="headerPager" id="pager2">
        </xp:pager>
    </xp:this.facets>
    <xp:this.data>
        <xp:dominoView var="view2"
            viewName="vwRequestsAllByStatusClientsName">
            <xp:this.categoryFilter><![CDATA[#{javascript:var v = getComponent("comboBoxFilterBy").getValue();
您希望使用“单一类别”按“状态”(例如“草稿”)进行选择,但仍希望显示带有“草稿”的列吗?
.... 除此之外,您最好只在视图上方的标题处显示它,因为它为您节省了一个完整的列,您只需向视图中添加另一个重复“Status”字段的列(未排序)。如果不想添加视图列,可以创建一个使用状态字段的计算列。

我使用了两个视图面板/视图。如果选择“全部”,则显示按客户端分类的视图。否则,将显示按状态分类的视图,然后显示客户端。然后,类别过滤器将用于该视图

<xp:viewPanel rows="30" id="viewPanel1">
    <xp:this.facets>
        <xp:pager partialRefresh="true" layout="Previous Group Next"
            xp:key="headerPager" id="pager1">
        </xp:pager>
    </xp:this.facets>
    <xp:this.data>
        <xp:dominoView var="view1"
            viewName="vwRequestsAllByClientsName">
        </xp:dominoView>
    </xp:this.data>
    <xp:this.rendered><![CDATA[#{javascript:var v = getComponent("comboBoxFilterBy").getValue();
 return (v=="All" || v==null);
}]]></xp:this.rendered>
    <xp:viewColumn columnName="ClientName" id="viewColumn1">
        <xp:viewColumnHeader value="ClientName"
            id="viewColumnHeader1">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="RequestNum" id="viewColumn2">
        <xp:viewColumnHeader value="Request #"
            id="viewColumnHeader2">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="APPSNo" id="viewColumn3">
        <xp:viewColumnHeader value="APPS Number"
            id="viewColumnHeader3">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="LoanType" id="viewColumn4">
        <xp:viewColumnHeader value="Loan Type"
            id="viewColumnHeader4">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="LoanAmount" id="viewColumn5">
        <xp:viewColumnHeader value="Loan Amount"
            id="viewColumnHeader5">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="Term" id="viewColumn6">
        <xp:viewColumnHeader value="Term" id="viewColumnHeader6">
        </xp:viewColumnHeader>
    </xp:viewColumn>

</xp:viewPanel>
<xp:viewPanel rows="30" id="viewPanel2">
    <xp:this.facets>
        <xp:pager partialRefresh="true" layout="Previous Group Next"
            xp:key="headerPager" id="pager2">
        </xp:pager>
    </xp:this.facets>
    <xp:this.data>
        <xp:dominoView var="view2"
            viewName="vwRequestsAllByStatusClientsName">
            <xp:this.categoryFilter><![CDATA[#{javascript:var v = getComponent("comboBoxFilterBy").getValue();

<xp:viewPanel rows="30" id="viewPanel1">
    <xp:this.facets>
        <xp:pager partialRefresh="true" layout="Previous Group Next"
            xp:key="headerPager" id="pager1">
        </xp:pager>
    </xp:this.facets>
    <xp:this.data>
        <xp:dominoView var="view1"
            viewName="vwRequestsAllByClientsName">
        </xp:dominoView>
    </xp:this.data>
    <xp:this.rendered><![CDATA[#{javascript:var v = getComponent("comboBoxFilterBy").getValue();
 return (v=="All" || v==null);
}]]></xp:this.rendered>
    <xp:viewColumn columnName="ClientName" id="viewColumn1">
        <xp:viewColumnHeader value="ClientName"
            id="viewColumnHeader1">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="RequestNum" id="viewColumn2">
        <xp:viewColumnHeader value="Request #"
            id="viewColumnHeader2">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="APPSNo" id="viewColumn3">
        <xp:viewColumnHeader value="APPS Number"
            id="viewColumnHeader3">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="LoanType" id="viewColumn4">
        <xp:viewColumnHeader value="Loan Type"
            id="viewColumnHeader4">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="LoanAmount" id="viewColumn5">
        <xp:viewColumnHeader value="Loan Amount"
            id="viewColumnHeader5">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="Term" id="viewColumn6">
        <xp:viewColumnHeader value="Term" id="viewColumnHeader6">
        </xp:viewColumnHeader>
    </xp:viewColumn>

</xp:viewPanel>
<xp:viewPanel rows="30" id="viewPanel2">
    <xp:this.facets>
        <xp:pager partialRefresh="true" layout="Previous Group Next"
            xp:key="headerPager" id="pager2">
        </xp:pager>
    </xp:this.facets>
    <xp:this.data>
        <xp:dominoView var="view2"
            viewName="vwRequestsAllByStatusClientsName">
            <xp:this.categoryFilter><![CDATA[#{javascript:var v = getComponent("comboBoxFilterBy").getValue();

v} ]]>


我认为XPage上不需要2个视图或2个视图面板。在按状态分类的视图中,将以下公式用于分类状态列:

<xp:viewPanel rows="30" id="viewPanel1">
    <xp:this.facets>
        <xp:pager partialRefresh="true" layout="Previous Group Next"
            xp:key="headerPager" id="pager1">
        </xp:pager>
    </xp:this.facets>
    <xp:this.data>
        <xp:dominoView var="view1"
            viewName="vwRequestsAllByClientsName">
        </xp:dominoView>
    </xp:this.data>
    <xp:this.rendered><![CDATA[#{javascript:var v = getComponent("comboBoxFilterBy").getValue();
 return (v=="All" || v==null);
}]]></xp:this.rendered>
    <xp:viewColumn columnName="ClientName" id="viewColumn1">
        <xp:viewColumnHeader value="ClientName"
            id="viewColumnHeader1">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="RequestNum" id="viewColumn2">
        <xp:viewColumnHeader value="Request #"
            id="viewColumnHeader2">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="APPSNo" id="viewColumn3">
        <xp:viewColumnHeader value="APPS Number"
            id="viewColumnHeader3">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="LoanType" id="viewColumn4">
        <xp:viewColumnHeader value="Loan Type"
            id="viewColumnHeader4">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="LoanAmount" id="viewColumn5">
        <xp:viewColumnHeader value="Loan Amount"
            id="viewColumnHeader5">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="Term" id="viewColumn6">
        <xp:viewColumnHeader value="Term" id="viewColumnHeader6">
        </xp:viewColumnHeader>
    </xp:viewColumn>

</xp:viewPanel>
<xp:viewPanel rows="30" id="viewPanel2">
    <xp:this.facets>
        <xp:pager partialRefresh="true" layout="Previous Group Next"
            xp:key="headerPager" id="pager2">
        </xp:pager>
    </xp:this.facets>
    <xp:this.data>
        <xp:dominoView var="view2"
            viewName="vwRequestsAllByStatusClientsName">
            <xp:this.categoryFilter><![CDATA[#{javascript:var v = getComponent("comboBoxFilterBy").getValue();
Status : "All"

上述公式将添加“全部”类别,并显示所有文档,而不考虑状态

那不行。问题是我的“全部”观点。由于没有所有类别的过滤器,它将首先按状态排序。因此,在“All”视图中最终发生的情况是,当状态不同时,客户机名称没有分类(这是有意义的)。我想我需要两种不同的观点。一个是按状态分类,然后是按客户分类,另一个只是按客户分类。好主意,这么简单。为什么我没想到呢?:)
<xp:viewPanel rows="30" id="viewPanel1">
    <xp:this.facets>
        <xp:pager partialRefresh="true" layout="Previous Group Next"
            xp:key="headerPager" id="pager1">
        </xp:pager>
    </xp:this.facets>
    <xp:this.data>
        <xp:dominoView var="view1"
            viewName="vwRequestsAllByClientsName">
        </xp:dominoView>
    </xp:this.data>
    <xp:this.rendered><![CDATA[#{javascript:var v = getComponent("comboBoxFilterBy").getValue();
 return (v=="All" || v==null);
}]]></xp:this.rendered>
    <xp:viewColumn columnName="ClientName" id="viewColumn1">
        <xp:viewColumnHeader value="ClientName"
            id="viewColumnHeader1">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="RequestNum" id="viewColumn2">
        <xp:viewColumnHeader value="Request #"
            id="viewColumnHeader2">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="APPSNo" id="viewColumn3">
        <xp:viewColumnHeader value="APPS Number"
            id="viewColumnHeader3">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="LoanType" id="viewColumn4">
        <xp:viewColumnHeader value="Loan Type"
            id="viewColumnHeader4">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="LoanAmount" id="viewColumn5">
        <xp:viewColumnHeader value="Loan Amount"
            id="viewColumnHeader5">
        </xp:viewColumnHeader>
    </xp:viewColumn>
    <xp:viewColumn columnName="Term" id="viewColumn6">
        <xp:viewColumnHeader value="Term" id="viewColumnHeader6">
        </xp:viewColumnHeader>
    </xp:viewColumn>

</xp:viewPanel>
<xp:viewPanel rows="30" id="viewPanel2">
    <xp:this.facets>
        <xp:pager partialRefresh="true" layout="Previous Group Next"
            xp:key="headerPager" id="pager2">
        </xp:pager>
    </xp:this.facets>
    <xp:this.data>
        <xp:dominoView var="view2"
            viewName="vwRequestsAllByStatusClientsName">
            <xp:this.categoryFilter><![CDATA[#{javascript:var v = getComponent("comboBoxFilterBy").getValue();