使用o:form进行排序时删除了PrimeFaces数据表过滤includeRequestParams =“true”[重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用o:form进行排序时删除了PrimeFaces数据表过滤includeRequestParams =“true”[重复]相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
这是一个问题:PrimeFaces datatable.filter() and url parameter
使用PrimeFaces-5.1和omnifaces-2.1在使用请求参数时使用分页,过滤和排序来呈现数据表。我的数据表是这样构造的:
<o:form includeRequestParams="true">
<p:dataTable id="hostStateHistoryTable" value="#{HostHistoryBean.hostStateHistoryList}" var="status" widgetVar="statusTable"
filteredValue="#{HostHistoryBean.filteredHostStateHistoryList}"
rowStyleClass="#{status.state eq 0 ? 'up' : null} #{status.state eq 1 ? 'down' : null} #{status.state eq 2 ? 'unreachable' : null}"
rows="50" paginator="true" paginatorTemplate="{PageLinks} {RowsPerPageDropdown}" rowsPerPageTemplate="10,50,100">
<p:column sortBy="#{status.stateTime}">
<f:facet name="header">Start Time</f:facet>
<h:outputText id="Start" value="#{status.stateTime}" />
</p:column>
... all columns
</p:dataTable>
</o:form>
但Sorting正在删除PrimeFaces Datatable Filtering。我可以单独排序并单独过滤而没有问题,但是当我在过滤后对数据进行排序时,删除过滤器。再次单击相同的过滤器将不会执行任何操作,但过滤另一个值将显示预期的结果。似乎o:form将重新发送请求,包括属性,而不是使用datatable filteredValue。
编辑:我在这里上传了一个基于eclipse的MCVE项目:http://www.dacave.fr/stackoverflow/test.faces.rar
好的,我发现由于@RequestScoped,每个ajax调用都重置了filteredValue。我想我有点混淆东西。所以我将所有@ManagedBeans切换到@Named然后我创建了一个新的@SessionScoped Bean,其中包含大部分属性,并且@inject一个@RequestScoped bean,其中包含基于请求的属性。
现在一切都按预期工作
以上是关于使用o:form进行排序时删除了PrimeFaces数据表过滤includeRequestParams =“true”[重复]的主要内容,如果未能解决你的问题,请参考以下文章