在bootstable数据表中打印/导出所选列

问题描述 投票:2回答:1

我在项目中使用Bootsfaces Datatable来显示对象列表。

<h:form id="form">
                    <b:growl id="growl" allowDismiss="true"/>
                    <b:dataTable  responsive="true" ajax="true" id="data_table" class="table table-responsive" value="#{adminCarrera_Bean.lista_carreraes}" var="carrera" paginated="true" csv="true" pdf="true" print="true" page-length="10">
                        <b:dataTableColumn  value="#{carrera.carreranacionalidcarreranacional.nombrecarreranacional}" order="asc" label="Nombre">
                        </b:dataTableColumn>
                        <b:dataTableColumn value="#{carrera.facultadcodigoarea.nombrearea}" label="Facultad">
                        </b:dataTableColumn>
                        <b:dataTableColumn value="#{carrera.carreranacionalidcarreranacional.especialidadidespecialidad.nombreespecialidad}" label="Especialidad">
                        </b:dataTableColumn>
                        <b:dataTableColumn label="Estado">
                            <b:label text="#{adminCarrera_Bean.Translate_Estado(carrera.canceladacarrera)}" severity="#{adminCarrera_Bean.BooleanToSeveriy(carrera.canceladacarrera)}"/>
                        </b:dataTableColumn>
                        <b:dataTableColumn label="Acciones" style="width: 100px;">
                            <center>
                                <p:commandButton id="btnInfo" icon="fa fa-info" title="Informaci&oacute;n" update="form2"  class="btn btn-info" action="#{adminCarrera_Bean.updateSelected_Carrera(carrera)}" oncomplete="$('#InfoModal').modal()" ajax="true">             
                                </p:commandButton>
                                <p:blockUI block="body" trigger="btnInfo">
                                    <div class="sk-cube-grid">
                                        <div class="sk-cube sk-cube1"></div>
                                        <div class="sk-cube sk-cube2"></div>
                                        <div class="sk-cube sk-cube3"></div>
                                        <div class="sk-cube sk-cube4"></div>
                                        <div class="sk-cube sk-cube5"></div>
                                        <div class="sk-cube sk-cube6"></div>
                                        <div class="sk-cube sk-cube7"></div>
                                        <div class="sk-cube sk-cube8"></div>
                                        <div class="sk-cube sk-cube9"></div>
                                    </div>
                                </p:blockUI>
                                <p:commandButton style="margin-left: 10px" class="btn btn-warning" id="btnEdit" update="form3" title="Editar" icon="fa fa-edit" action="#{adminCarrera_Bean.updateSelected_Carrera_toEdit(carrera)}" oncomplete="$('#EditModal').modal()" ajax="true">
                                </p:commandButton>
                                <p:blockUI block="body" trigger="btnEdit">
                                    <div class="sk-cube-grid">
                                        <div class="sk-cube sk-cube1"></div>
                                        <div class="sk-cube sk-cube2"></div>
                                        <div class="sk-cube sk-cube3"></div>
                                        <div class="sk-cube sk-cube4"></div>
                                        <div class="sk-cube sk-cube5"></div>
                                        <div class="sk-cube sk-cube6"></div>
                                        <div class="sk-cube sk-cube7"></div>
                                        <div class="sk-cube sk-cube8"></div>
                                        <div class="sk-cube sk-cube9"></div>
                                    </div>
                                </p:blockUI>
                            </center>
                        </b:dataTableColumn>
                    </b:dataTable>
                    <b:commandButton id="btnADD" value="Adicionar Carrera" iconAwesome="plus" look="success" action="#{adminCarrera_Bean.cleanVariables()}" onclick="$('#AddModal').modal()" ajax="true">
                        <f:ajax render="form1"/>
                    </b:commandButton>
                </h:form>

这段代码在屏幕上显示了一张表格,其中包含Carrera对象的所有数据,也就是说,本例中的表格有4列。还有第五列允许对行数据(信息和编辑)进行操作,这些行打开一个模态,每个模式显示必要的数据。在表中声明可以打印数据并将数据导出为PDF。问题是它打印或导出页面上的所有列,包括我不需要打印的Actions列。有没有办法选择要打印/导出的列?这些是选择打印按钮时表格和表格的捕获:Design of the page on the page Design of the table when printing

java jsf datatable bootsfaces
1个回答
0
投票

你可以通过放弃BootsFaces快捷方式csv="true"pdf="true"print="true"来实现这一目标。相反,将the Datatables.net documentation建议的Json对象放在custom-options属性中。这有点麻烦,但它有效,就像"sneak preview" showcase of the BootsFaces project shows。生成的源代码如下所示:

<b:dataTable responsive="true" 
             ajax="true"
             id="data_table" 
             class="table table-responsive" 
             value="#{adminCarrera_Bean.lista_carreraes}"  
             var="carrera" 
             paginated="true" 
             page-length="10"
             custom-options="dom: 'lfrtiBp',buttons: ['colvis','copy','csv',{extend: 'excelHtml5', exportOptions: {columns: [ 0, 1, 2, 3, 5 ]}},{extend: 'pdfHtml5', exportOptions: {columns: [ 0, 1, 2, 3, 5 ]}},'print']">
© www.soinside.com 2019 - 2024. All rights reserved.