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