javascript - 过滤后传递值为 0 - Primefaces

标签 javascript html jsf primefaces jsf-2

我当前使用的是 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/

相关文章:

javascript - 如何在新标签加载时使用 HTML DOM 事件?

javascript - 在数据表的分页之间添加逗号

html - 像图表一样有 12 个字段的旋转轮

html - 试图将两个按钮和段落保持在表中同一行的同一水平线上

css - 如何删除 p :commendlink? 中的边框

java - JSF 不显示第一行、第一列数据

java - 如何在 jsf 中填充页面加载的下拉列表?

javascript - JQuery 范围 slider 工具提示

javascript - 处理 VueJS 范围

html - 无法在 Div 中的 HTML 表单上输入文本