您好我使用的是primefaces 4.0和jsf 2x。在我的应用程序中,我有一个带过滤的可编辑数据表。每当我过滤一行并单击编辑我没有得到我选择的行值。
PFB我的Bean课程:
class MyBean{
private List<MyEntity> details;
private List<MyEntity> filteredDetails;
private MyEntity entity;
private DataTable dataTable;
//Setters and Getters
}
我的xhtml页面的一部分:
<p:dataTable value="#{myBean.details}"
var="dashboard"
binding="#{myBean.dataTable}"
id="dashboardTable" paginator="true" rows="10"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}"
rowsPerPageTemplate="10"
filteredValue="#{myBean.filteredDetails}"
widgetVar="viewdashboardtable" paginatorPosition="bottom">
<f:facet name="header">
<h:outputText value="Dashboard Details"></h:outputText>
</f:facet>
<p:column id="column1" filterBy="customerNumber"
filterMatchMode="contains">
<f:facet name="header">
<h:outputText value="customerNumber"></h:outputText>
</f:facet>
<h:commandLink value="#{dashboard.customerNumber}"
action="editdetails">
<f:setPropertyActionListener value="#{dashboard}"
target="#{myBean.Entity}" />
</h:commandLink>
</p:column>
.......
.......
此处每页只显示两行。该页面按排序顺序显示客户编号1,2,3和4的客户详细信息。
-------------------------------------------------------
customerNumber Name Age
-------------------------------------------------------
1 Dheepan 23
2 Sasi 23
3 Pushparaj 24
4 Prabha 24
当我使用客户编号3过滤表格时,我只得到如下所示的一行。
-------------------------------------------------------
customerNumber Name Age
-------------------------------------------------------
3 Pushparaj 24
如果我现在点击客户编号进行编辑,我将获得客户详细信息1而不是3.问题是在过滤行索引1的详细信息后,客户编号为客户详细信息1.可以帮助任何人我来解决这个问题?
更新:rowExpansion + Filter也会出现同样的问题。
答案 0 :(得分:1)
这是PF 4.0中的已知问题。它已在Elite版本中修复,但实时滚动仍然会出现问题。 PrimeFaces 5.0昨天作为一个社区(免费使用)版本刚刚到达,而该版本的AFAIK包含此行为的修复程序。