Заполните данные JQuery с помощью данных JSON из переменной - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть данные JSON в скрытой переменной (с использованием обратной связи старой школы, а не вызовов ajax).Ниже приведен код для его заполнения в таблицу данных.

var BatchDataList = JSON.parse($('#BatchDataJSON').val());
$('#BatchListTable').DataTable(
{
    'data': BatchDataList,
    'columnDefs': [
        {
            data: "BatchID"
        },
        {
            data: "BatchType"
        },
        {
            data: "CreatedDate"
        },
        {
            data: "IsBatchCompleted"
        }
    ],
    "autoWidth": false,
    responsive: true,
    "scrollX": true,
});

Фактическое определение таблицы приведено ниже.

<table id="BatchListTable" class="table table-bordered table-striped table-hover dataTable" style="width: 100%">
                                <thead>
                                    <tr>
                                        <th>Batch ID</th>
                                        <th>Batch Type</th>
                                        <th>Create Date</th>
                                        <th>Completed</th>
                                    </tr>
                                </thead>
                                <tbody runat="server">
                                </tbody>
                            </table>

При запуске этого кода появляется сообщение «Параметр запроса»неизвестно».Я думал, что мой JSON может быть недействительным.Но это, кажется, хорошо.Вот пример.

[{"BatchID":"31-a1eac15c","CreatedDate":"2018-12-19T11:51:18.577","IsBatchCompleted":false,"BatchType":"Conversion"},
{"BatchID":"31-b3e8cc7e","CreatedDate":"2018-12-19T10:18:51.27","IsBatchCompleted":false",BatchType":""}]

Я думаю, что это проблема с тем, как я назначаю JSON для данных.Но я не могу понять, чего мне здесь не хватает.

PS Я пытался использовать значение переменной напрямую, без разбора.Та же проблема и в этом случае.

Ответы [ 2 ]

0 голосов
/ 20 декабря 2018

Решил проблему.

Нужны были две вещи.Пришлось убрать пустой тег tbody.И измените columnDefs на columns.И да, s в columns очень важно.Это была моя ошибка, когда я сделал это в первый раз.

0 голосов
/ 20 декабря 2018

Попробуйте добавить свойство target в columndefs: Но вам нужно отсортировать столбцы данных в соответствии с таблицей.

var BatchDataList = JSON.parse($('#BatchDataJSON').val());
$('#BatchListTable').DataTable(
{
    'data': BatchDataList,
    'columnDefs': [
       {targets: 0}
    ],
    "autoWidth": false,
    responsive: true,
    "scrollX": true,
});

Сортировать JSON по столбцам таблицы:

[{"BatchID":"31-a1eac15c","BatchType":"Conversion","CreatedDate":"2018-12-19T11:51:18.577","IsBatchCompleted":false},
{"BatchID":"31-b3e8cc7e",BatchType":"","CreatedDate":"2018-12-19T10:18:51.27","IsBatchCompleted":false"}]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...