Masking numbers in PrimeFaces footerText column Datatable

守給你的承諾、 提交于 2019-12-09 17:35:02

问题


I want to display a masked number like this: 1.234.567,89. The following code already do this:

<p:column>
    <h:outputText value="#{item.value}">
      <f:convertNumber locale="pt_BR"/>
    </h:outputText>
</p:column>

How can I applly the same mask for a Primefaces datatable in a footerText column as the following code excerpt?

<p:columnGroup type="footer">  
  <p:row>  
    <p:column colspan="8" footerText="Grand Total:" />  
    <p:column footerText="#{upbController.totalLosses}" />      
  </p:row>  
</p:columnGroup>

Thanks in advance.


回答1:


You can try to place your footerText using f:facet. Here is how I used to use it for p:column:

<p:column headerText="Number of units" >
    <h:outputText value="#{item.units}" />
    <f:facet name="footer">
        <h:outputText
            value="Total: #{mybean.unitsTotal}" />
        <br />
        <h:outputText
            value="To do: #{mybean.unitsTodo}" />

    </f:facet>
</p:column>

I suspect that it would work also for p:columnGroup and then you can apply f:convertNumber to such h:outputText.

Update

And here's how works for header facet in header type:

<p:columnGroup type="header">
    <p:row>
        <p:column rowspan="2" headerText="Manufacturer" />
        <p:column colspan="2">
            <f:facet name="header">
                <h:outputText value="#{bean.countValue(bean.order)}">
                    <f:convertNumber maxFractionDigits="2" minFractionDigits="2" currencyCode="PLN" locale="pl_PL" />
                </h:outputText>
            </f:facet>
        </p:column>
    </p:row>
</p:columnGroup>

and for footer facet in footer type:

<p:columnGroup rendered="true" type="footer">
    <p:row>
        <p:column rowspan="2" headerText="Manufacturer" />
        <p:column colspan="2">
            <f:facet name="footer">
                <h:outputText value="#{bean.countPieces(bean.order)}">
                    <f:convertNumber pattern="###,###.00" locale="pl_PL"/>
                </h:outputText>
            </f:facet>
        </p:column>
    </p:row>
</p:columnGroup> 



回答2:


You can do thay by using ui param and use converter in it. After that getting that value at p:column footerText




回答3:


If you can use Omnifaces then you can do

<p:columnGroup type="footer">
  <p:row>
    <p:column colspan="3" footerText="Total:" />
    <p:column footerText="#{of:formatNumber(bean.total.jan, '#.00')}" />
    <p:column footerText="#{of:formatNumber(bean.total.feb, '#.00')}" />
    <p:column footerText="#{of:formatNumber(bean.total.mar, '#.00')}" />
    <p:column footerText="#{of:formatNumber(bean.total.apr, '#.00')}" />
    <p:column footerText="#{of:formatNumber(bean.total.may, '#.00')}" />
    <p:column footerText="#{of:formatNumber(bean.total.jun, '#.00')}" />
    <p:column footerText="#{of:formatNumber(bean.total.jul, '#.00')}" />
    <p:column footerText="#{of:formatNumber(bean.total.aug, '#.00')}" />
    <p:column footerText="#{of:formatNumber(bean.total.sep, '#.00')}" />
    <p:column footerText="#{of:formatNumber(bean.total.oct, '#.00')}" />
    <p:column footerText="#{of:formatNumber(bean.total.nov, '#.00')}" />
    <p:column footerText="#{of:formatNumber(bean.total.dec, '#.00')}" />
  </p:row>
</p:columnGroup>


来源:https://stackoverflow.com/questions/19793072/masking-numbers-in-primefaces-footertext-column-datatable

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!