Datatables Plugin Excel кнопка только для экспорта жестко закодированных данных строк - PullRequest
0 голосов
/ 07 января 2019

Я создаю таблицу в представлении для проекта MVC asp.net. Сам шаблон таблицы уже настроен в представлении (жестко запрограммирован), и я заполняю таблицу с помощью javascript, используя данные json из ajax. Таблица заполняется так, как я хочу, хотя, когда я использую кнопку Datatable Excel, она создает таблицу в Excel, но нет данных, кроме имен столбцов.

Для справки я использую пример на https://datatables.net/extensions/buttons/examples/html5/simple.html

У меня есть все зависимости, указанные в ссылке выше. Я запрограммировал одну строку в таблицу, и это работает, когда я экспортирую таблицу в Excel, но не из динамических данных из моего сценария.

Я пытался поместить код создания кнопки jquery excel в разные части моего скрипта, и это не сработало (как вы увидите в моем коде). Это работает только тогда, когда я жестко закодировал строку в таблице, а не с динамическими данными. создается и кладется в таблицу

 <table id="tableReport" class="table table-striped table-hover">
                    <colgroup>
                        <col style="width: 7%" />
                        <col style="width: 7%" />
                        <col style="width: 7%" />
                        <col style="width: 7%" />
                        <col style="width: 7%" />
                        <col style="width: 7%" />
                        <col style="width: 7%" />
                        <col style="width: 7%" />
                        <col style="width: 7%" />
                        <col style="width: 7%" />
                        <col style="width: 7%" />
                        <col style="width: 7%" />
                        <col style="width: 7%" />
                    </colgroup>
                    <thead>
                    <tr>
                        <th>Event Name</th>
                        <th>Start Date</th>
                        <th>End Date</th>
                        <th>Peoplesoft_ID</th>
                        <th>First Name</th>
                        <th>Last Name</th>
                        <th>Workday_ID</th>
                        <th>District Name</th>
                        <th>District Code</th>
                        <th>Donation Date</th>
                        <th>Amount</th>
                        <th>Recurring Periods</th>
                        <th>Gift</th>
                    </tr>
                    </thead>

                        <tr>
                            <td>Easter Event</td>
                            <td>Hardcoded Test</td>
                            <td>Hardcoded Test</td>
                            <td>Hardcoded Test</td>
                            <td>Hardcoded Test</td>
                            <td>Hardcoded Test</td>
                            <td>Hardcoded Test</td>
                            <td>Hardcoded Test</td>
                            <td>Hardcoded Test</td>
                            <td>Hardcoded Test</td>
                            <td>Hardcoded Test</td>
                            <td>Hardcoded Test</td>
                            <td>Hardcoded Test</td>
                        </tr>

                </table>



<script type="text/javascript" language="javascript">


    function loadFunction() {

        var value_id = $('#myhidden').val();
        alert(value_id);
        $.ajax({
            type: 'POST',
            dataType: 'json',
            contentType: 'application/json; charset=utf-8',
            url: '/Admin/ShowEventJSON',
            data: '{ value_id:' + JSON.stringify(value_id) + '}',
            success: function (data) {
                createReport(data)

            },
            error: function () { alert('ajax request error') }
        });


    }

    //$('#example').DataTable({
    //    dom: 'Bbfrtip',
    //    buttons: [
    //        'copy'

    //    ]
    //});

    //$(document).ready(function () {
    //    $('#tableReport').DataTable({
    //        dom: 'Bbfrtip',
    //        buttons: [
    //            'excelHtml5',

    //        ]
    //    });
    //});



    //Function to populate table
    function createReport(data) {


        var myObj = JSON.parse(data);

        var table = document.getElementById("tableReport");

        for (var i in myObj) {
            var row = document.createElement('tr');
            var valuesArray = Object.values(myObj[i]);
            for (var v in valuesArray) {
                var cell = document.createElement('td');
                var cellValue = document.createTextNode(valuesArray[v]);
                cell.appendChild(cellValue);
                row.appendChild(cell);
            }
            table.appendChild(row);
        }


        $(document).ready(function () {
            $('#tableReport').DataTable({
                dom: 'Bbfrtip',
                buttons: [
                    'excelHtml5',

                ]
            });
        });

    }



</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...