Xpages 如果未设置过滤器,如何防止带有类别过滤器的viewPanel显示空行

Xpages 如果未设置过滤器,如何防止带有类别过滤器的viewPanel显示空行,xpages,xpages-ssjs,Xpages,Xpages Ssjs,我让这个分类视图显示在一个视图面板中,其中没有显示类别列本身。相反,我在viewPanel上方显示了一个组合框,用户可以从中选择所有可用的类别(参见下面的屏幕截图)。该组合绑定到scopeVariable,并在更改时刷新viewPanel。viewPanel具有从同一scopeVar读取的计算categoryFilter。这一切都很好 现在,我还在选择列表中实现了一个额外的通配符(*)值,该值(如果选中)以编程方式将cat过滤器设置为NULL。这样,我将强制viewPanel显示所有条目。同样,

我让这个分类视图显示在一个视图面板中,其中没有显示类别列本身。相反,我在viewPanel上方显示了一个组合框,用户可以从中选择所有可用的类别(参见下面的屏幕截图)。该组合绑定到scopeVariable,并在更改时刷新viewPanel。viewPanel具有从同一scopeVar读取的计算categoryFilter。这一切都很好

现在,我还在选择列表中实现了一个额外的通配符(*)值,该值(如果选中)以编程方式将cat过滤器设置为NULL。这样,我将强制viewPanel显示所有条目。同样,这也可以正常工作,但有一个缺点,即现在视图显示的是通常显示类别条目的空行(在屏幕截图中,您可以在每个条目上方看到空行,其中“edcom GmbH”类别的两个条目显然属于同一类别;这些条目之间没有空行分隔):

至少隐藏这些空行的一种方法是通过css编码。但我更希望这些行根本不被渲染

是否可以使用viewPanel实现这一点,以及如何实现?或者我必须使用其他控件,比如repeat或dataTable吗

提前感谢,

Lothar

一个“黑客”(我承认这是一个丑陋的黑客)将您的分类列从
Firma
更改为
Firma:“--All——”
Firma:“*”
,然后将类别过滤器设置为
NULL
,而不是设置为“-All——”
(或“*”

双重分类点击了索引器,但应该做你需要做的事。

一个“黑客”(我承认这是一个丑陋的黑客)将你的分类列从
Firma
更改为
Firma:“--All--”或
Firma:“*”
然后你将类别过滤器设置为
NULL
,而不是设置为“-All--”
(或“*”


双重分类可以点击索引器,但应该做您需要的事情。

显然没有简单的方法。因此,在此期间,我将坚持使用css样式的解决方案:

在视图面板und All Properties-data中,我设置了var=“entry”。然后,在“所有属性-样式”下,我为rowClasses属性设置了一个编程值:

if(entry.isCategory()){
    return "rowStyleHidden";
}
return "";
样式类“rowStyleHidden”使用

display: none;

我还不知道这在性能方面是如何实现的,一旦我在真实数据库的副本中实现了它,我就必须观察它。

显然没有简单的方法。因此,在此期间,我将坚持使用css样式的解决方案:

在视图面板und All Properties-data中,我设置了var=“entry”。然后,在“所有属性-样式”下,我为rowClasses属性设置了一个编程值:

if(entry.isCategory()){
    return "rowStyleHidden";
}
return "";
样式类“rowStyleHidden”使用

display: none;

我还不知道这在性能方面是如何实现的,一旦我在真实数据库的副本中实现了它,我就必须观察到这一点。

您也可以切换到未分类的视图,方法是根据combobox中的值计算viewname。

您也可以切换到未分类的视图,根据combobox中的值计算viewname。

+1这正是我通常所做的。但是,多类别列和getAllEntriesByKey方法存在性能问题,谢谢Stephan,我考虑过这个解决方案,但不知怎么的,我并不喜欢它。除非有其他方法,否则我将保持原样,只需添加一些自定义css;在你的页面上看到我自己的答案,这就是为什么我称它为hack+1,这正是我通常所做的。但是,多类别列和getAllEntriesByKey方法存在性能问题,谢谢Stephan,我考虑过这个解决方案,但不知怎么的,我并不喜欢它。除非有其他方法,否则我将保持原样,只需添加一些自定义css;在你的页面上看到我自己的答案,这就是为什么我称之为黑客