java - 打印/导出 bootstable 数据表中的选定列

标签 java jsf datatable bootsfaces

我在项目中使用 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

最佳答案

您可以通过放弃 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']">

关于java - 打印/导出 bootstable 数据表中的选定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55616322/

相关文章:

java - JSF : model, Action 、getters、导航、phaselisteners 中的最佳实践

html - Vuetify嵌套数据表列宽问题

java - AppBar 布局透明背景

java - 如何在一个简单的 java 项目中使用 android 库进行开发(不使用 dalvik 等)

javascript - 单击 <p :commandButton> in JSF 打开一个新窗口

c# - SQL/C# : DataTable to stored procedure (INSERT from user-defined table type) - Converting error

c# - 如何在两个 jQuery 数据表之间传递参数

java - rt.jar 中的工厂设计模式实现

java - 使用 Android 注释绑定(bind)到现有服务?

jsp - javax.faces.FacesException : java. lang.RuntimeException:找不到 FacesContext