【发布时间】:2015-07-01 10:22:23
【问题描述】:
我有一个定义了 viewPanel 控件的 Xpages 页面。它按类别过滤并包含一些列。其中之一是可排序的。不幸的是,它在以下情况下会失去排序功能:
- 打开 Xpage(过滤类别:null)- 我可以点击排序列
- 更改过滤器类别(过滤器类别:'something')- 排序不可用(因此数据源没问题)
- 改回过滤器类别(过滤器类别== null)-排序不可用,没有列排序链接(排序箭头可见)。
我尝试过部分刷新和完全刷新,但都不起作用。我应该怎么做才能再次启用排序?
编辑
这里是示例代码:
<xp:button value="All companies" id="button5">
<xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="vpDocuments">
<xp:this.action><![CDATA[#{javascript:viewScope.cat = null;}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
<xp:button value="Single Company" id="button2">
<xp:eventHandler event="onclick" submit="true"
refreshMode="partial" refreshId="vpDocuments">
<xp:this.action><![CDATA[#{javascript:viewScope.cat = 'abc';}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
<xp:viewPanel id="vpDocuments" var="rowData"
indexVar="rowIdx">
<xp:this.data>
<xp:dominoView var="view1"
databaseName="#{javascript:computeMyDb()}" viewName="xMyView"
categoryFilter="#{javascript:viewScope.cat}"></xp:dominoView>
</xp:this.data>
<xp:viewColumn columnName="$Company" id="viewColumn1">
<xp:viewColumnHeader value="Company" id="viewColumnHeader1">
</xp:viewColumnHeader>
</xp:viewColumn>
<xp:viewColumn columnName="Invoice" id="viewColumn2">
<xp:viewColumnHeader value="Invoice" id="viewColumnHeader2">
</xp:viewColumnHeader>
</xp:viewColumn>
<xp:viewColumn columnName="OrderDate" id="viewColumn7"
styleClass="dateColumn">
<xp:viewColumnHeader value="Order Date" id="viewColumnHeader7"
sortable="true">
</xp:viewColumnHeader>
</xp:viewColumn>
</xp:viewPanel>
所以最后一列是可排序的,但是在清除类别过滤后,标题不可点击
【问题讨论】:
-
我认为在这里显示您的 viewPanel 代码会有所帮助,您可以将其添加到您的问题中吗?
-
要尝试两件事:首先,尝试使用“keys”属性而不是“categoryFilter”。其次,不太可能,尝试将 viewScope.cat 更改为 sessionScope.cat,以防它在刷新期间丢失值。
-
密钥被正确传递,因为我看到了正确的文件。将过滤从“categoryFilter”更改为“keys”解决了这个问题。非常感谢史蒂夫。
-
太好了,我会把它变成一个答案。请接受答案,因为它解决了您的问题,谢谢 :)
标签: xpages lotus-domino