我当前使用的是 Primefaces 6.1,我得到了以下数据表:
<prime:column headerText="Status" filterBy="#{zoneAccSum.statusImage(zoneAccess.request.id)}"
filterMatchMode="equals">
<f:facet name="filter">
<prime:selectOneButton styleClass="theme-running" onchange="PF('data').filter()" >
<f:selectItems value="#{zoneAccSum.statusButtons}" />
</prime:selectOneButton>
</f:facet>
<prime:graphicImage value="#{zoneAccSum.statusImage(zoneAccess.request.id)}" />
</prime:column>
<prime:column headerText="Details" style="text-align:center; width:150px;">
<prime:commandButton value="Details" id="ajax" actionListener="#{zoneAccSum.redirect(zoneAccess.id)}" oncomplete="PF('requestModal').show()" update="SummaryFormZone:zone" />
</prime:column>
所以过滤工作正常,它向我显示了正确的结果。但是,如果我在过滤后使用 commandButton,我得到的传递值始终为 0。为了澄清,我的 Bean 已经被 ViewScoped 和序列化,并且我的 Button 在 Bean 中设置了一个值,我的模态面板可以从中请求数据。
有谁知道,我如何才能解决一直为 0 的问题,或者如何构建解决方法?
最佳答案
我今天尝试了几件事,终于自己解决了。对于其他可能遇到此问题的人,我将在这里发布我的解决方案:
Primefaces 出于某种原因需要在托管 Bean 中添加一个额外的列表以用于过滤目的。因此,在第一个数据表标签处,您需要添加以下内容:
<prime:dataTable var="zoneAccess" value="#{zoneAccSum.data}" widgetVar="data" rows="10" paginator="true" filteredValue="#{zoneAccSum.filteredData}">
filteredValue 标签
在您的托管 Bean 中,只需添加一个具有给定名称的新列表(在本例中为filteredData),Primefaces 现在不再传递空值
关于javascript - 过滤后传递值为 0 - Primefaces,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48418318/