тег в заголовке HTML нарушает экспорт pdfmake в jQuery DataTables - PullRequest
0 голосов
/ 14 ноября 2018

Я пытаюсь отформатировать, как данные отображаются в 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;
        }
   }
},

и используйте следующий CSS вместе с подсказкой пользовательского интерфейса jquery.

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,

datatable

На приведенном выше снимке экрана вместо метода <br/> в методе замены было указано <hr>, но поведение остается прежним. Работает нормально, если заменить на \n. Когда я пытаюсь экспортировать PDF, данные повторяются. В частности, data.substr (85) part.

pdf export

Что я делаю не так?

Спасибо

1 Ответ

0 голосов
/ 14 ноября 2018

хорошо, в вашей кнопке

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

в ваших столбцах:

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