如何使用columnToggler仅导出选定的列

zee*_*kat 1 datatable jsf xls data-export primefaces

这里我在primeFaces中使用dataExporter作为我的表,它在type ="xls"中成功导出,但问题是另外我使用columnToggler来选择列,我想只定位那些列在xls文件中导出,在columnToggler中检查/选择那些: 在此输入图像描述

这是我的dataExporter的代码,它针对我的表(id ="tbl").

    <h:commandLink>
  <img src="Resources/images/excel.png"/>
   <p:dataExporter type="xls" target="tbl" fileName="dailyPoolReport_#{userAuthorization.user.loginName}" pageOnly="false" postProcessor="#{customizedDocumentsView.postProcessXLS}"/>
   </h:commandLink>
Run Code Online (Sandbox Code Playgroud)

这是我的tableToggler表格代码:

 <p:dataTable id="tbl" var="car" value="#{dailyTrackingBean.trackReportData}" rowIndexVar="row" style="font-size:12px; margin-bottom:0;"
                                                 paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                                                 rowKey="#{car.vehicle.regNo}"
                                                 paginator="true" rows="50" rowsPerPageTemplate="50,100,500,1000,5000">


<f:facet name="header" >
 <h:outputText value="Vehicle Tracking Summary Report" style="font-size: 14px"/>

   <p:commandButton id="toggler" type="button" value="Columns" style="float:right;height: 22px;font-size: 11px" icon="ui-icon-calculator" />
<p:columnToggler datasource="tbl" trigger="toggler" >

  </p:columnToggler>

 </f:facet>
Run Code Online (Sandbox Code Playgroud)

有没有可能的解决方案?

小智 6

要做到这一点,你可以使用类似的东西:http: //blog.primefaces.org/?p = 3341

所以你可以有一个boolean列表来表示attibute"visible"的toogles,并且可以使用相同的"exportable"

例如:

<f:facet name="header">
   List of Cars
   <p:commandButton id="toggler" type="button" value="Columns"  style="float:right" icon="ui-icon-calculator" />
   <p:columnToggler datasource="cars" trigger="toggler">
     <p:ajax event="toggle" listener="#{dtBasicView.onToggle}" />
   </p:columnToggler>
</f:facet>



 <p:column headerText="Id" visible="#{dtBasicView.list[0]}" exportable="#{dtBasicView.list[0]}">
                   <h:outputText value="#{car.id}" />
 </p:column>
Run Code Online (Sandbox Code Playgroud)

另外加 - 如果你使用上面也逃避:
*问题(columntoggler和分页)
*问题(columntoggler和globalfilter)

希望它能帮到你:)