Таблица не заполнена - PullRequest
       9

Таблица не заполнена

0 голосов
/ 25 октября 2019

Моя таблица загружается без данных ... вот как у меня есть настройка javascript для ее обработки ....

<script type="text/javascript">

    $(document).ready(function () {
        $('#btnEmployeeTableLoad').click(function () {
            $('#EmployeeTable').jtable({
                paging: true,
                pageSize: 10,
                sorting: true,
                defaultSorting: 'employeeName ASC',
                actions: {
                    listAction: 'https://localhost:44328/api/employee-information',
                    //deleteAction: '/Home/DeletePerson',
                    //updateAction: '/Home/UpdatePerson',
                    //createAction: '/Home/CreatePerson'
                },
                fields: {
                    employeeName: {
                        title: 'employeeName',
                        width: '35%'
                    },
                    employeeAddress: {
                        title: 'employeeAddress',
                        width: '15%'
                    },
                    employeeManager: {
                        title: 'employeeManager',
                        width: '15%'
                    },
                    prevExperience: {
                        title: 'prevExperience',
                        width: '15%'
                    }
                }
            });
            $('#EmployeeTable').jtable('load');
        });
    });

</script>

и мои ListData и ListData.Count показывают 752 строки, такЯ знаю, что данные извлекаются с сервера

return Json(new { Result = "OK", Records = ListData, TotalRecordCount = ListData.Count });

РЕДАКТИРОВАТЬ
Это то, что вкладка Сеть показывает в моем браузере:

{result: "OK",…}
records: [{employeeName: "Employee Name 1", employeeAddress: "Test Address 1", employeeManager: "Test Manager 1", prevExperience: "No"},…]
result: "OK"
totalRecordCount: 757

РЕДАКТИРОВАТЬ 2
Это библиотеки, которые я включаю

<script src="~/lib/jquery/dist/jquery.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.bundle.js"></script>
<link rel="stylesheet" href="https://cdn.datatables.net/1.10.20/css/jquery.dataTables.min.css"></style>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css" rel="stylesheet">
<script type="text/javascript" src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.0/js/dataTables.buttons.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.0/js/buttons.flash.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/pdfmake.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.53/vfs_fonts.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.0/js/buttons.html5.min.js"></script>
<script type="text/javascript" src="https://cdn.datatables.net/buttons/1.6.0/js/buttons.print.min.js"></script>
<script type="text/javascript" src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/jtable@2.6.0/lib/jquery.jtable.min.js"></script>
<link href="https://cdn.datatables.net/buttons/1.6.0/css/buttons.dataTables.min.css" rel="stylesheet">
<link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/jtable@2.6.0/lib/themes/metro/blue/jtable.css" rel="stylesheet">

1 Ответ

1 голос
/ 25 октября 2019

Проблема с сервером API точно.

Поддерживает ли ваш API-вызов POST? Потому что согласно документам jtable.

Если вы определили listAction как строку URL, то, когда вы используете метод загрузки, jTable создает AJAX POST для этого адреса URL, чтобы получить список записей

Также убедитесь, что ответ JSON должен соответствовать структуре.

{
    "Result": "OK",
    "Records": [
        {
            "prevExperience": 2,
            "employeeName": "Douglas Adams",
            "employeeManager": "Simon",
            "employeeAddress": "Washigton"
        }
    ]
}

Если вы хотите сделать вызов GET, listAction должно быть function вместоstring

                actions: {
                        listAction: function () {
                            console.log("Loading from custom function...");
                            return $.Deferred(function ($dfd) {
                                $.ajax({
                                    url: "https://localhost:44328/api/employee-information/",
                                    type: 'GET',
                                    dataType: 'json',
                                    success: function (data) {
                                        console.log("Success");
                                        $dfd.resolve(data);
                                    },
                                    error: function () {
                                        console.log("Error");
                                        $dfd.reject();
                                    }
                                });
                            });
                        }
                    }

В вашем случае выходной JSON имеет структуру {result: "OK", records: []}

. Вам нужно преобразовать его в {Result: "OK", Records: []} для работы jtable. Это можно сделать с помощью обработчика успешных вызовов ajax, как показано ниже.

                actions: {
                    listAction: function (postData, jtParams) {
                        return $.Deferred(function ($dfd) {
                            $.ajax({
                                url: 'https://localhost:44328/api/employee-information?' + jtParams.jtStartIndex + '&jtPageSize=' + jtParams.jtPageSize + '&jtSorting=' + jtParams.jtSorting,
                                type: 'GET',
                                dataType: 'json',
                                success: function (data) {
                                    $dfd.resolve({ Records: data.records, Result: data.result, TotalRecordCount: data.totalRecordCount });
                                },
                                error: function () {
                                    $dfd.reject();
                                }
                            });
                        });
                    }
                }

Кодовая ссылка с вашим кодом.

https://codepen.io/nithinthampi/pen/zYYwgLq

Пустой сервер с GET.

https://RoundPungentProject.nithinthampi.repl.co

...