首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要DataTable打印才能仅打印文本

需要DataTable打印才能仅打印文本
EN

Stack Overflow用户
提问于 2021-08-04 10:24:08
回答 1查看 79关注 0票数 3

我有一个现有的模块,它(使用DataTables (jQuery))显示表中的数据,最终用户要求它们能够打印数据。

代码语言:javascript
复制
    $('.js-dataTable-full-agedDebt').DataTable({
            ajax: {
               url: 'inc/ajax/tables/payable/aged-debt.php',
               type: "post",
               data: function(d){
                   d.depot = Depot;
                   d.group = Group;
               }
            },
            dom: 'Bfrtip',
            pagingType: "full_numbers",
            buttons: [
                'print'
            ],
            order: [1., 'asc'],
            "deferRender": true,
            scrollY: "500px",
            paging: false,
            columns: [
                {"data": "Account"},
                {"data": "Term"},
                {"data": "Credit"},
                {"data": "Total"},
                {"data": "Amount"},
                {"data": "Month1"},
                {"data": "Month2"},
                {"data": "Month3"},
                {"data": "Month4"},
                {"data": "Month5"},
                {"data": "Action"},
                {"data": "balanceMonthRemit"},
                {"data": "balanceMonth"},
                {"data": "balanceMonthMinusOne"},
                {"data": "balanceMonthMinusTwo"},
                {"data": "balanceMonthMinusThree"},
                {"data": "balanceOlder"},
            ],
            "columnDefs": [
                {"visible": false, "targets": [11, 12, 13, 14, 15, 16]},
                {"orderData": [ 11 ], "targets": 4 },
                {"orderData": [ 12 ], "targets": 5 },
                {"orderData": [ 13 ], "targets": 6 },
                {"orderData": [ 14 ], "targets": 7 },
                {"orderData": [ 15 ], "targets": 8 },
                {"orderData": [ 16 ], "targets": 9 },
            ]
}

这在正常情况下是可以的,但是,这个表没有默认值。90%的单元格中的值是带有popOver的锚定标记(它显示了一个较小的数据表,其中显示了计算)。

代码语言:javascript
复制
<a onmouseover="popupDataActivityTotal(&quot;CN000141-N&quot;)" onmouseout="popupDataActivityTotalClose(&quot;CN000141-N&quot;)" class="popOver" id="activityTotalCN000141-N" style="color:#3f9ce8;" data-toggle="popover" data-html="true" title="" data-placement="bottom" data-content="
                           
                <table class=&quot;table table-bordered table-striped&quot;>
                    <thead>
                        <th class=&quot;pl-15 pr-15&quot;>Doc Type</th>
                        <th class=&quot;pl-15 pr-15&quot;>Doc Num</th>
                        <th class=&quot;pl-15 pr-15&quot;>Doc Date</th>
                        <th class=&quot;pl-15 pr-15&quot;>Due Date</th>
                        <th class=&quot;pl-15 pr-15&quot;>Open Amount</th>
                    </thead>
                    <tbody>
                            <tr>
                                <td class=&quot;pl-15 pr-15&quot;>Invoice</td>
                                <td class=&quot;pl-15 pr-15&quot;>600054871</td>
                                <td class=&quot;pl-15 pr-15&quot;>18th June 2021</td>
                                <td class=&quot;pl-15 pr-15&quot;>18th June 2021</td>
                                <td class=&quot;pl-15 pr-15&quot;>£48.89</td>
                            </tr>
                            <tr>
                                <td class=&quot;pl-15 pr-15&quot;>Invoice</td>
                                <td class=&quot;pl-15 pr-15&quot;>600055336</td>
                                <td class=&quot;pl-15 pr-15&quot;>29th June 2021</td>
                                <td class=&quot;pl-15 pr-15&quot;>29th June 2021</td>
                                <td class=&quot;pl-15 pr-15&quot;>£601.32</td>
                            </tr>
                            <tr>
                                <td class=&quot;pl-15 pr-15&quot;>Invoice</td>
                                <td class=&quot;pl-15 pr-15&quot;>600055918</td>
                                <td class=&quot;pl-15 pr-15&quot;>13th July 2021</td>
                                <td class=&quot;pl-15 pr-15&quot;>13th July 2021</td>
                                <td class=&quot;pl-15 pr-15&quot;>£72.00</td>
                            </tr></tbody></table>
                        " data-original-title="Account Activity Total">
                        722.21
                    </a>

这将导致以下结果

我需要这些字段只显示innerHTML/value,这样当我单击print时,它不会像这样显示:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-09 15:19:47

对于那些一直关注这个帖子的人,我已经了解到了DataTables的光荣的导出选项。

代码语言:javascript
复制
 buttons: [{extend: 'print',
            exportOptions: {
                columns: [ ':visible' ],
                format: {
                    body: function ( data, row, column, node ) {
                        if (column == 3) {
                            console.log($(data).text());
                            return column == 3 ?
     
                            $(data).text():
                            data;
                        } else if (column == 4) {
                            return column == 4 ?
     
                            $(data).text():
                            data;
                        
                        } else if (column == 5) {
                            return column == 5 ?
     
                            $(data).text():
                            data;
                        
                        } else if (column == 6) {
                            return column == 6 ?
     
                            $(data).text():
                            data;
                        
                        } else if (column == 7) {
                            return column == 7 ?
     
                            $(data).text():
                            data;
                        
                        } else if (column == 8) {
                            return column == 8 ?
     
                            $(data).text():
                            data;
                        
                        } else if (column == 9) {
                            return column == 9 ?
     
                            $(data).text():
                            data;
                        
                        } else {
                            return data;
                        }
                    }
                }
            },
        }],

我只能获得将文本嵌入到HTML中的列的文本。我本可以使用循环,但这是项目的变通补丁,所以我相信其他人可以给出更好的结构化答案

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68649572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档