[英]jsf primefaces filtering pagination scope
我正在过滤我的列并使用了分页功能,所以我将我的backing bean会话设置为作用域,因为我正在从db加载数据,所以我也将其设置为会话作用域n不想重新加载它。 我正在使用查看按钮来选择一列,并转发到新页面以显示更多信息,并且正在使用后退按钮返回到主页。
现在我的问题是,当我过滤数据并单击查看按钮时,它向我显示数据,但是当我单击后退按钮n仍返回到主页时,数据仍在过滤,我知道这是正在发生的问题,因为我已经使用过会话范围n过滤持续存在。 这样做的问题是,即使认为数据已被过滤,它也不会在其进行过滤的过滤单元中显示该值。 要删除过滤,我必须在过滤单元中输入一个值并将其删除,以取回所有数据。 我觉得也许我有一个设计缺陷,但无法弄清楚如何解决它。
程式码片段
主页
<p:dataTable var="curridea" value="#{userIdea.ideas}" filteredValue="#{userIdea.filteredideas}"
paginator="true" rows="10"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,15">
<p:column headerText="Employee Name" filterBy="empname"
filterMatchMode="contains">
<h:outputText value="#{curridea.empname}" />
</p:column>
<p:column headerText="View">
<h:commandButton value="view" action="#{userIdea.actionController}" >
<f:setPropertyActionListener value="#{curridea}" target="#{userIdea.selectedidea}" />
</h:commandButton>
</p:column>
查看页面
<h1 class="title">Your idea Here</h1>
<h:form>
<h:outputText value="#{userIdea.selectedidea.idea}" escape="false" />
<h:commandButton value="back" action="#{userIdea.returnController}" >
</h:commandButton>
用户理念
private ArrayList<Idea> filteredideas;
public ArrayList<Idea> getFilteredideas() {
return filteredideas;
}
public void setFilteredideas(ArrayList<Idea> filteredideas) {
this.filteredideas = filteredideas;
}
更新:我通过将视图页面后退按钮中的过滤后的想法设置为空解决了问题,但请让我知道是否有更好的解决方案,但我没有看到
<h:commandButton value="back" action="#{userIdea.returnController}" >
<f:setPropertyActionListener value="" target="#{userIdea.filteredideas}" />
</h:commandButton>
我通过将“查看”页面“后退”按钮中的过滤后的主意设置为空解决了问题,但请让我知道是否有更好的解决方案,但我没有看到
<h:commandButton value="back" action="#{userIdea.returnController}" >
<f:setPropertyActionListener value="" target="#{userIdea.filteredideas}" />
</h:commandButton>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.