【问题标题】:Incorrect header when exporting to PDF with yadcf filter使用 yadcf 过滤器导出为 PDF 时标题不正确
【发布时间】:2016-06-21 09:32:35
【问题描述】:

当我尝试使用过滤器 yadcf 将我的数据表导出为 pdf 时,标题总是显示过滤器中的每个案例,我该如何隐藏它?

我的 javascript 是:

var vsan = $('#vsan').DataTable( {
    "lengthMenu": [ [-1, 10, 40, 50], ["All", 10, 40, 50] ],
    "sDom": '<"top"i>fBltif',    
    "buttons": [
        { 
            extend: 'print',
            exportOptions: {
                columns: ':visible'
            }
        },
        {
            extend: 'excel',
            exportOptions: {
                columns: ':visible'
            }
        },
        {
            extend: 'pdfHtml5',
            exportOptions: {
                columns: ':visible'
            }
        },
        {
            extend: 'copyHtml5',
            exportOptions: {
                columns: ':visible'
            }
        },
        {
            extend: 'csv',
            exportOptions: {
                columns: ':visible'
            }
        }
    ],
    "bJQueryUI": true,  //Enable jQuery UI ThemeRoller support
    "bAutoWidth": false,
    "bDestroy": true,
    //"order": [[ 3, "desc" ]], //tri par défaut
    "bStateSave": false, //plante ?
    "bPaginate": true, //Enable or disable pagination.
    "bInfo": true,
});

yadcf.init(vsan, [{column_number : 0, filter_type : "none"}, {column_number : 1, filter_type : "none"}, {column_number : 2, filter_type : "none"}, {column_number : 3, filter_type : "select"}, {column_number : 4, filter_type : "auto_complete"}, {column_number : 5, filter_type : "range_number_slider"},{column_number : 6, filter_type : "none"}, {column_number : 7, filter_type : "range_number_slider"}]);

问题来了:

我正在使用:

http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/jquery.dataTables.min.js
https://rawgit.com/vedmack/yadcf/8e071af195106fa702f942373c65164b89ca40ff/jquery.dataTables.yadcf.js

谢谢

【问题讨论】:

  • 使用 rawgit url 到 yadcf js(并且不要发布个人用户 dropbox url),另外我认为这可以通过 datatables api 修复
  • 我使用了来自github.com/vedmack/yadcf/releases 0.8.9 的官方版本,但我认为版本更好,因为版本:0.9.0.beta.20。没关系,我试过 columnFilter,我也遇到了同样的问题,所以我认为问题不在于 yadcf ...
  • 正如我所说,我认为(记住其他人抱怨/仅使用 datatables api 解决了它)- 你可以在 datatables forum 上提问
  • 好的,我正在做,你知道如何调整“range_number_slider”过滤器的范围栏吗?我正在寻找修改我的 jquery.ui 但也许有更简单的解决方案?
  • 阅读文档/谷歌/玩css - 这是你能得到的最佳答案

标签: javascript jquery pdf datatable yadcf


【解决方案1】:

好吧,我做到了,但我觉得这很奇怪:

exportOptions: { 
    columns: ':visible' , 
    format: { 
              header: function ( data, column, row ) 
                {
                  return data.substring(data.indexOf("inline-block")+15,data.indexOf("<span")); 
                }
           }
    }

我不知道是否需要修补它,或者可能存在错误,但关键是它可以工作!

【讨论】:

    【解决方案2】:

    我也遇到了这个问题,我做了如下的事情:-

    exportOptions: { 
    columns: ':visible' , 
    format: { 
              header: function ( data, column, row ) 
                {
                  return data.split('<')[0]; 
                }
           }
    }
    

    它对我有用。这将删除正在添加的 div。 当我检查我的标题数据时,类似于:-

    column name&lt;div id="yadcf-filter-wrapper--crime_table-7" class="yadcf-filter-wrapper"&gt;&lt;select id="yadcf-filter--crime_table-7" class="yadcf-filter " onchange="yadcf.doFilter(this, '-crime_table', 7, 'contains');" onkeydown="yadcf.preventDefaultForEnter(event);" onmousedown="yadcf.stopPropagation(event);" onclick="yadcf.stopPropagation(event);"&gt;&lt;option value="-1"&gt;Select Column&lt;/option&gt;............................&lt;button type="button" id="yadcf-filter--crime_table-7-reset" onmousedown="yadcf.stopPropagation(event);

    所以我将 div 从列名中拆分出来,只保留标题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-14
      • 2017-05-14
      相关资源
      最近更新 更多