Пользовательский JSON для заполнения Datatable - PullRequest
0 голосов
/ 11 сентября 2018

Я создаю DataTable из Ajax JSON.

resultTable = $('#changeTable').DataTable({
            "order": [[0, "desc"]],
            "pageLength": 50,
            "scrollX": true,
            "lengthMenu":[[50,100,250, -1], [50, 100, 250, "All"]],
            "dom":'<"toolbar">ltipr', //write ltfipr to show a search bar
            "ajax":{
                url:"api/changes",
                "dataType":"json",
                timeout:15000
            }
    });

DataTables создает, но выдает ошибку:

Предупреждение DataTables: table id = changeTable - Запрошенный неизвестный параметр'0' для строки 0, столбца 0. Для получения дополнительной информации об этой ошибке см. http://datatables.net/tn/4

My JSON. Выглядит как следующий

{"data":
    [
       {"id":1,
        "createdDate":"Apr 18, 2018 4:10:58 PM",
        "source":"manual upload",
        "emailId":"manual upload",
        "attachmentId":"manual upload",
        ...,},
       {next objet}]}

Такой объект JSONсозданный в моем контроллере Java:

@RequestMapping(value = "/api/changes", method = RequestMethod.GET, produces = "application/json")
    @ResponseBody
    public String getChanges(){
        Optional<List<PriceChange>> priceChangeList = pcService.findAllPriceChanges();
        JsonObject result = new JsonObject();
        if (priceChangeList.isPresent()) {
            result.add("data", new Gson().toJsonTree(priceChangeList.get()));
            return  result.toString();
        }
        return null;

    }

Я не знаю, как использовать эту информацию со свойством dataSrc, чтобы оно работало для DataTable.Есть идеи?

1 Ответ

0 голосов
/ 11 сентября 2018

Вам просто нужно определить columns для таблицы.Если у вас есть

<table id="changeTable"></table>

, добавьте это к вашим опциям DataTables:

resultTable = $('#changeTable').DataTable({
  ...,
  columns: [
     { data: 'id', title: 'id' },
     { data: 'createdDate', title: 'createdDate' },
     { data: 'source', title: 'source' },
     { data: 'emailId', title: 'emailId' },
     { data: 'attachmentId', title: 'attachmentId' }
   ]
})

Если в ypu указан раздел <thead>, вы можете пропустить title.

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