【问题标题】:Passed Value after Filtering is 0 - Primefaces过滤后的通过值为 0 - Primefaces
【发布时间】:2018-07-03 06:03:50
【问题描述】:

我目前正在使用 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 的问题或如何构建解决方法?

【问题讨论】:

    标签: javascript html jsf primefaces jsf-2


    【解决方案1】:

    我今天尝试了几件事,最终自己弄清楚了。对于可能遇到此问题的其他人,我将在此处发布我的解决方案:

    Primefaces 不知何故需要托管 Bean 中的一个额外列表用于过滤目的。因此,在第一个数据表标签处,您需要添加以下内容:

    <prime:dataTable var="zoneAccess" value="#{zoneAccSum.data}" widgetVar="data" rows="10" paginator="true" filteredValue="#{zoneAccSum.filteredData}">
    

    filteredValue标签

    在您的托管 Bean 中,只需添加一个具有给定名称的新列表,在本例中为过滤数据,Primefaces 现在不再传递空值

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-25
      • 2011-10-18
      • 2016-04-08
      • 1970-01-01
      • 1970-01-01
      • 2022-11-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多