Datatable Buttons - Проблема экспорта CSV не принимает значение ячейки

У меня возникла проблема, когда экспорт csv не экспортирует набор значений с помощью fnRowCallback, я попытался заглянуть в ортогональный, но не похоже, что он хочет работать.

Мой код кнопки выглядит следующим образом:

buttons: [
       'selectNone',
       'selectAll',
       {
           extend: 'csv',
           title: 'Data export',
           exportOptions: {
               columns: colArr, rows: { selected: true }
           }
       }],

Генерирую столбцы динамически при загрузке страницы, так как это не исправлено:

 var Columns = [
    { "data": "Name" },
    { "data": "EmployeeNum", "sClass": "text-center" },
    { "data": "DateStartedS", "sClass": "text-center" },
    { "data": "DateCompletedS", "sClass": "text-center" },

];

for (var a = 0; a < QuestionLength; a++) {
    Columns.push({ "data": "ID", "sClass": "text-center" });
}

Columns.push({ "data": "ID", "sClass": "text-center" });

затем, когда это будет завершено, я использую fnRowCallback, чтобы получить значение из метода:

fnRowCallback: function (nRow, aData, iDisplayIndex, iDisplayIndexFull) {

        var QuestionColumns = $("#tblPollsReport thead td.trquestion");;

        $.each(QuestionColumns, function (idx, item) {

            var QuestionID = $(item).attr("data-questionid");

            var Result = FindAsnwer(QuestionID, aData["QuestionAsnwers"]);
            debugger;
            var QNum = idx + 4;
            //$('td:eq(' + QNum + ')', nRow).val("Hallo");
            $('td:eq(' + QNum + ')', nRow).html(Result);
        })
        //Actions
        var ActoinHtml = '<div class="btn-group">';
        ActoinHtml += '<button onclick="DeletePollUser(' + aData["ID"] + ')" title="Delete" class="btn btn-xs btn-danger js-tooltip"><i class="fa fa-times"></i></button>';
        ActoinHtml += '</div>';

        var ActionCol = (4 + QuestionLength);

        $('td:eq(' + ActionCol + ')', nRow).html(ActoinHtml);
    },

Однако, когда я экспортирую, он использует исходное значение, которое я добавил при добавлении в столбцы, а не значение, которое я установил в fnRowCallback.

Любая помощь будет оценена.

1 ответ

Решение

Хорошо, я справился в конце

Я изменил раздел столбцов, чтобы содержать это:

for (var a = 0; a < QuestionLength; a++) {
    Columns.push({
        "data": "ID", "sClass": "text-center", render: function (data, type, row, colinfo) {

            if (type === 'export') {
              //Any logic you would like to overide with
            } else {
                return data;
            }

        }
    });
}
Другие вопросы по тегам