Предупреждение DataTables: таблица id = пример - неверный ответ JSON при разбиении на страницы с сервера - PullRequest
0 голосов
/ 18 февраля 2019

это моя таблица

<table id="example" class="display" style="width: 100%">
            <thead>
                <tr>
                    <th>latitude</th>
                    <th>longitude</th>
                </tr>
            </thead>
            <tfoot>
                <tr>
                    <th>latitude</th>
                    <th>longitude</th>
                </tr>
            </tfoot>
        </table>

это мой скрипт

 <script src="https://code.jquery.com/jquery-3.3.1.js"></script>
<link href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css" rel="stylesheet" />
<script>
    $(document).ready(function () {
        $(document).ready(function () {
            $('#example').DataTable({
                "processing": true,
                "serverSide": true,
                "info": true,
                "stateSave": true,
                "lengthMenu": [[10, 20, 50, -1], [10, 20, 50, "All"]],
                "ajax": {
                    "url": "Default3.aspx/GetRouteName",
                    "type": "GET"
                },
                "columns": [
                    { "data": "latitude" },
                   { "data": "longitude" }
                ],
                "order": [[0, "asc"]]
            });
        });
    });
</script>

и в конце страницы я загружаю скрипт ниже

<script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>

это мой сервер

 [WebMethod]
public static string GetRouteName()
{
    List<location> b = new List<location>();
    for (int i = 0; i < 1000; i++)
    {
        location l = new location();
        l.latitude = 1233;
        l.longitude = 123123;
        b.Add(l);
    }
    bise bb = new bise();
    bb.data = b;
    bb.draw = 3;
    bb.recordsFiltered = 1000;
    bb.recordsTotal = 1000;
    return JsonConvert.SerializeObject(bb);
}

я продолжаю получать DataTables warning: table id=example - Invalid JSON response я пробовал так много поворотов, но одна и та же проблема, все, что мне нужно, это иметь возможность разбивать данные на сервере, потому что у меня большие данные, но вызов ajax даже не запускается, ссылка на эту ссылку доступна с сервера

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Я не знаком с .NET, но я бы предложил просто сделать это таким образом, чтобы соблюдать требуемый формат (это псевдокод на стороне сервера, не стесняйтесь переводить его на любой язык, который вы пожелаете):

function GetRouteName() // returns an object
{
    Array b = new Array();
    for (int i = 0; i < 1000; i++)
    {
        Array l = new Array();
        l.latitude = 1233;
        l.longitude = 123123;
        b["data"].Add(l); // Add the longitude/latitude array to a data field of the returned array
    }
    return JsonConvert.SerializeObject(b); // return the array b after converting it to json
}

Помните, ваш возвращенный json должен выглядеть следующим образом:

{
  "data": [
    {
      "longitude": "123",
      "latitude": "123123"
    },
    {
      "longitude": "123",
      "latitude": "123123"
    },
    {
      "longitude": "123",
      "latitude": "123123"
    }
  ]
}

Это должен быть объект, содержащий data, и внутри этого множества объектов, имеющих в качестве ключей longitude и latitudeс правильными параметрами.

0 голосов
/ 18 февраля 2019
[WebMethod]
public static string GetRouteName()
{
    List<location> b = new List<location>();
    for (int i = 0; i < 1000; i++)
    {
        location l = new location();
        l.latitude = 1233;
        l.longitude = 123123;
        b.Add(l);
    }

    return JsonConvert.SerializeObject(b);
} 

ты можешь попробовать это?это работает?

...