首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在DataTable的pdfHtml5按钮中动态改变方向?

如何在DataTable的pdfHtml5按钮中动态改变方向?
EN

Stack Overflow用户
提问于 2020-02-12 02:59:42
回答 1查看 347关注 0票数 0

我一直在尝试根据可见的列数动态地更改DataTables中输出的方向。

我设置了一个全局变量dynOrient,它是在用户显示/隐藏列时计算的。然后,我尝试在按钮选项中设置它:

代码语言:javascript
复制
buttons: [
    {
        extend: 'pdfHtml5',
        footer: true,
        text: 'Download PDF',
        orientation: dynOrient,    //HERE
        customize: function(doc) {
        ...
        }
    }
]

这似乎保留了按钮创建时的dynOrient,而不会随着dynOrient的变化而从横向更改为纵向。

我也尝试过将其放入customize函数中:

代码语言:javascript
复制
doc.content[1].pageOrientation = dynOrient;

这并没有做任何事情,只是保留了默认的画像,无论dynOrient是什么。

如何在DataTables中动态更改pdfHtml5输出的方向?

EN

回答 1

Stack Overflow用户

发布于 2020-02-12 03:49:59

实际上,我只是想出了一个解决方案(我不知道这是否是合适的解决方案)。

我将按钮的信息放到一个全局变量中,每次显示或隐藏一个列get时,我都会重新计算方向,在按钮信息中手动设置方向,并删除/重新创建按钮。

代码语言:javascript
复制
var buttonInfo = {
    extend: 'pdfHtml5',
    footer: true,
    text: 'Download PDF',
    orientation: dynOrient,
    customize: function(doc) {
    ...
    }
};

//some code...

$("input[name='showhideswitches']").click(function() {
    var col = $(this).data('col');
    myTable.column(col).visible($(this).prop("checked"));
    dynOrient = getOrientation();
    buttonInfo.orientation = dynOrient; //Manually overriding orientation
    myTable.button('0').remove();
    myTable.button().add(0, buttonInfo); //Re-create
}

也许有人可以提供更好的解决方案,但在此之前,我将保留这一点,因为它目前是有效的。

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

https://stackoverflow.com/questions/60175699

复制
相关文章

相似问题

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