Главное, что я новичок в JQuery Datatable, и последние 2 дня я пытаюсь использовать его, используя строку json. Но я не получаю требуемый вывод.
Вот мой HTML:
<body>
<div class = "container">
<table id = "MydataTableDiv">
<thead>
<tr>
<th>NAME</th>
<th>MARKS</th>
</tr>
</thead>
</table>
</div>
</body>
Вот мой сценарий:
$(document).ready(function () {
$("#MydataTableDiv").DataTable({
serverSide: true,
processing: true,
ajax: {
"url": "../Home/GetData",
"dataSrc":''
},
columns: [
{ data: "NAME" },
{ data: "MARKS" }
],
});
});
И наконец , Мой домашний контроллер:
public JsonResult GetData()
{
DataTable _dt = new DataTable();
_dt.Columns.Add("NAME");
_dt.Columns.Add("MARKS");
for (int i = 0; i < 10; i++)
{
DataRow _dr = _dt.NewRow();
_dr["NAME"] = "A_" + i;
_dr["MARKS"] = i * 10;
_dt.Rows.Add(_dr);
}
string JsonResult = JsonConvert.SerializeObject(_dt);
return Json(new {data=JsonResult }, JsonRequestBehavior.AllowGet);
}
Вот моя строка Json, возвращенная контроллером:
[{"NAME":"A_0","MARKS":"0"},{"NAME":"A_1","MARKS":"10"},{"NAME":"A_2","MARKS":"20"},{"NAME":"A_3","MARKS":"30"},{"NAME":"A_4","MARKS":"40"},{"NAME":"A_5","MARKS":"50"},{"NAME":"A_6","MARKS":"60"},{"NAME":"A_7","MARKS":"70"},{"NAME":"A_8","MARKS":"80"},{"NAME":"A_9","MARKS":"90"}]
Этот код дает мне пустую и пустую таблицу, которая содержит все параметры разбиения по страницам и фильтрации. пожалуйста, помогите мне, в чем ошибка в приведенном выше коде или есть ли другой способ использовать его для динамических данных.
@G_S мне дано, C# datatable в формате json.
Это то, что ожидает дататабль? Можете ли вы опубликовать то, что у вас есть, в формате JSON, если возможно. (Потому что я ожидаю, что JSON - это не то, что ожидает datatable)
@G_S Я обновил свой вопрос.
Проверьте предоставленный ответ и дайте мне знать, работает ли он для вас



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Из того, что я заметил, таблицам данных нужен объект JSON, а не строка. Вы возвращаете строку, которую можно преобразовать в JSON.
Внесено небольшое изменение в ваш вызов ajax
ajax: {
url: "http://localhost:21594/api/values",
"dataSrc": function ( json ) {
return JSON.parse(json);
}
},
Вышеупомянутое преобразует ваши данные, которые вы возвращаете в виде строки, в JSON, который понимает datatable.
спасибо @G_S, я пробовал json.parse(), но он показывает неправильное сообщение формата json.
Значит, ваш json имеет неправильный формат. еще раз проверьте свой JSON
Можете ли вы проверить, какой ответ на вызов Ajax находится на вкладке сети инструментов разработчика? Это то, что ожидает ваш datatable?