HTML标题中的<br/>标记中断了jQuery DataTables中的pdfmake导出

时间:2018-11-14 11:23:24

标签: javascript jquery html datatables pdfmake

我正在尝试格式化数据在jQuery DataTable中的显示方式。

如果文本较长,我将其截断如下:

{
"data": "col1", "render": function (data, type, row) {
        if (type === 'display' && data != null) {
              data = data.replace(/<(?:.|\\n)*?>/gm, '');
              data = data.split("; ").join("<br/>");
                  if (data.length > 85) {

                      return '<span class=\"show-ellipsis\" title="'+data+'">' + data.substr(0, 85) + '</span><span class=\"no-show\">' + data.substr(85) + '</span>';
                  } else {
                      return data;
                  }
        } else {
           return data;
        }
   }
},

,并在jquery UI工具提示旁边使用以下CSS。

CSS

 span.no-show {
    display: none;
}

span.show-ellipsis:after {
    content: "...";
}

jQuery UI工具提示

<script>
$(function () {
    $(document).tooltip({
        items: 'span.show-ellipsis',
        content: function () {
            return $(this).attr('title');
        },
        position: {
            my: "center bottom",
            at: "center top-10",
            collision: "flip",
            using: function (position, feedback) {
                $(this).addClass(feedback.vertical)
                    .css(position);
            }
        }

    });

});


这样,它可以很好地显示在数据表中,

datatable

上面的屏幕快照在replace方法中具有<hr>而不是<br/>标签,但是行为保持不变。如果我将其替换为\n,效果很好。当我尝试导出pdf时,数据会重复。特别是data.substr(85)部分。

pdf export

我在做什么错了?

谢谢

1 个答案:

答案 0 :(得分:1)

确定,在您的按钮中

                extend: 'pdfHtml5',
                exportOptions: {
                    orthogonal: 'export',
                }

在您的列中:

        render: function (data, type, row) {
        return type === 'export' ? row.Descripcion: "";
     }