Xpages 搜索时显示每行中的值

Xpages 搜索时显示每行中的值,xpages,Xpages,我有一个组合框,一个按钮和一个搜索功能视图。该视图有两列,分别为“类别”和“课程”。在课程列中,我将多值分隔符设置为“新行”,启用“多值作为单独条目”,并且两个视图列标题都是排序列。因此,使用internet explorer查看应用程序时,视图如下所示: Category | Course ------------------------------------------------------- Accounting

我有一个组合框,一个按钮和一个搜索功能视图。该视图有两列,分别为“类别”和“课程”。在课程列中,我将多值分隔符设置为“新行”,启用“多值作为单独条目”,并且两个视图列标题都是排序列。因此,使用internet explorer查看应用程序时,视图如下所示:

Category                |   Course
-------------------------------------------------------              
Accounting              |   Advanced Accounting
Accounting              |   Introduction to Accounting
Accounting              |   Communication Skills
Accounting              |   Writing Skills
Engineering             |   Advanced Engineering
Engineering             |   Introduction to Engineering
Engineering             |   Communication Skills
Engineering             |   Writing Skills
Information Technology  |   Advanced Information Technology
Information Technology  |   Introduction to Information Technology
Information Technology  |   Communication Skills
Information Technology  |   Writing Skills
(更新)

谢谢stwissel的回答,我移除了按钮,因此有一个组合框和一个分类视图。虽然我在视图属性中找不到“LimitToCategory”(如果有人告诉我在哪里可以找到它,我会很感激),但我从组合框中获取值并将其放入“按类别名称筛选”中,而且组合框还具有onchange事件和部分更新视图

我运行程序,当我选择一个类别时,视图可以显示与该类别相关的值。设想视图显示如下结果:

Category                |   Course
-------------------------------------------------------              
Information Technology  |   Advanced Information Technology
                            Introduction to Information Technology
                            Communication Skills
                            Writing Skills
但是,如何单独显示课程?我该怎么做才能使课程显示单个行?(请参见下面的示例)

我在这篇文章中添加了另一个customerConverter,但结果仍然相同

 Category                |   Course
----------------------------------------------------------              
 Information Technology  |  Advanced Information Technology
----------------------------------------------------------
 Information Technology  |  Introduction to Information Technology
----------------------------------------------------------
 Information Technology  |  Communication Skills
----------------------------------------------------------
 Information Technology  |  Writing Skills
----------------------------------------------------------
我附上完整的代码供您审阅

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" dojoTheme="true">
<xp:this.resources>
    <xp:dojoModule name="dijit.form.ComboBox"></xp:dojoModule>
</xp:this.resources>
<xp:comboBox id="comboBox2" dojoType="dijit.form.ComboBox"
    style="width:400.0px" value="#{sessionScope.category}">
    <xp:selectItems>
        <xp:this.value><![CDATA[#{javascript:

var SetFirstValueBlank = @Text("");

return SetFirstValueBlank;
}]]></xp:this.value>
    </xp:selectItems>
    <xp:selectItems>
        <xp:this.value><![CDATA[#{javascript:@Unique(@DbColumn(@DbName(), "CategoryListView", 1));}]]></xp:this.value>
    </xp:selectItems>
    <xp:eventHandler event="onchange" submit="true"
        refreshMode="partial" refreshId="viewPanel5">
    </xp:eventHandler>
</xp:comboBox>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:viewPanel rows="30" id="viewPanel5">
    <xp:this.facets>
        <xp:pager partialRefresh="true" layout="Previous Group Next"
            xp:key="headerPager" id="pager5">
        </xp:pager>
    </xp:this.facets>
    <xp:this.data>
        <xp:dominoView var="view2"
            viewName="CategoryCourseView2">

            <xp:this.categoryFilter><![CDATA[#{javascript:getComponent("comboBox2").getValue();}]]></xp:this.categoryFilter>
        </xp:dominoView>
    </xp:this.data>
    <xp:viewColumn columnName="Category" id="viewColumn9"
        rendered="false">

        <xp:this.converter>
            <xp:customConverter
                getAsObject="#{javascript:return value;}">
                <xp:this.getAsString>
                    <![CDATA[#{javascript:return @Implode(value, "<br  />")}]]>
                </xp:this.getAsString>
            </xp:customConverter>
        </xp:this.converter>

        <xp:viewColumnHeader value="Category"
            id="viewColumnHeader9">
        </xp:viewColumnHeader>
    </xp:viewColumn>

    <xp:viewColumn id="viewColumn11" columnName="$10"
        contentType="HTML">
        <xp:this.facets>
            <xp:viewColumnHeader xp:key="header"
                id="viewColumnHeader11" value="Category">
            </xp:viewColumnHeader>
        </xp:this.facets>
    </xp:viewColumn>
    <xp:viewColumn columnName="CourseName" id="viewColumn10"
        contentType="HTML">

        <xp:this.converter>
            <xp:customConverter
                getAsObject="#{javascript:return value;}">
                <xp:this.getAsString>
                    <![CDATA[#{javascript:return @Implode(value, "<br />")}]]>
                </xp:this.getAsString>
            </xp:customConverter>
        </xp:this.converter>

        <xp:viewColumnHeader value="Course"
            id="viewColumnHeader10">
        </xp:viewColumnHeader>
    </xp:viewColumn>
</xp:viewPanel>
</xp:view>


谢谢你的建议。谢谢。

从下拉列表中选择值时,实际上是执行筛选而不是搜索。在XPages中,您可以对视图进行分类,并将LimitToCategory的值计算为下拉值—您可以直接指向该属性中的值。 你甚至不需要按钮。有关一些设计灵感,请参见


希望这有帮助

ViewPanel是一个非常有限的组件,旨在为页面提供基本的视图控制。如果您想要更复杂或更灵活的布局,最好的方法是使用repeat控件


与使用重复控件(也可以使用dominoView作为数据源)构建布局相比,您可能试图强制视图面板提供所需的功能要复杂得多。

Hello@stwissel,感谢您的回答和建议。在本文中,虽然在我的例子中没有总计,但我注意到“数据行3个类别上的透视视图”是最相似的。有一件事我不明白,那就是如何显示单个数据行。在视图属性中,我找不到实现该目标的选项。我更新了代码,也许我的代码出错了?请你看一看,谢谢你的建议。非常感谢你。
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" dojoTheme="true">
<xp:this.resources>
    <xp:dojoModule name="dijit.form.ComboBox"></xp:dojoModule>
</xp:this.resources>
<xp:comboBox id="comboBox2" dojoType="dijit.form.ComboBox"
    style="width:400.0px" value="#{sessionScope.category}">
    <xp:selectItems>
        <xp:this.value><![CDATA[#{javascript:

var SetFirstValueBlank = @Text("");

return SetFirstValueBlank;
}]]></xp:this.value>
    </xp:selectItems>
    <xp:selectItems>
        <xp:this.value><![CDATA[#{javascript:@Unique(@DbColumn(@DbName(), "CategoryListView", 1));}]]></xp:this.value>
    </xp:selectItems>
    <xp:eventHandler event="onchange" submit="true"
        refreshMode="partial" refreshId="viewPanel5">
    </xp:eventHandler>
</xp:comboBox>
<xp:br></xp:br>
<xp:br></xp:br>
<xp:viewPanel rows="30" id="viewPanel5">
    <xp:this.facets>
        <xp:pager partialRefresh="true" layout="Previous Group Next"
            xp:key="headerPager" id="pager5">
        </xp:pager>
    </xp:this.facets>
    <xp:this.data>
        <xp:dominoView var="view2"
            viewName="CategoryCourseView2">

            <xp:this.categoryFilter><![CDATA[#{javascript:getComponent("comboBox2").getValue();}]]></xp:this.categoryFilter>
        </xp:dominoView>
    </xp:this.data>
    <xp:viewColumn columnName="Category" id="viewColumn9"
        rendered="false">

        <xp:this.converter>
            <xp:customConverter
                getAsObject="#{javascript:return value;}">
                <xp:this.getAsString>
                    <![CDATA[#{javascript:return @Implode(value, "<br  />")}]]>
                </xp:this.getAsString>
            </xp:customConverter>
        </xp:this.converter>

        <xp:viewColumnHeader value="Category"
            id="viewColumnHeader9">
        </xp:viewColumnHeader>
    </xp:viewColumn>

    <xp:viewColumn id="viewColumn11" columnName="$10"
        contentType="HTML">
        <xp:this.facets>
            <xp:viewColumnHeader xp:key="header"
                id="viewColumnHeader11" value="Category">
            </xp:viewColumnHeader>
        </xp:this.facets>
    </xp:viewColumn>
    <xp:viewColumn columnName="CourseName" id="viewColumn10"
        contentType="HTML">

        <xp:this.converter>
            <xp:customConverter
                getAsObject="#{javascript:return value;}">
                <xp:this.getAsString>
                    <![CDATA[#{javascript:return @Implode(value, "<br />")}]]>
                </xp:this.getAsString>
            </xp:customConverter>
        </xp:this.converter>

        <xp:viewColumnHeader value="Course"
            id="viewColumnHeader10">
        </xp:viewColumnHeader>
    </xp:viewColumn>
</xp:viewPanel>
</xp:view>