Сейчас я работаю над исправлением ошибки для приложения, работающего там, где предыдущий разработчик (с тех пор) не потрудился разбивать результаты данных на странице, предназначенной специально для вывода результатов.
Это, конечно, вызвало уродливую голову, так как пользователи начинают видеть долгое время script ошибки в IE. Это, в сочетании с огромным объемом объема данных, делает веб-страницы практически бесполезными.
Ускорьтесь на мои попытки исправить это, и они прошли довольно хорошо. Сайт представляет собой сайт .NET MVC 2, который был разработан с использованием DataTables для добавления функций поиска/сортировки/подкачки на клиенте. Я только что завершил аналогичную задачу, используя jqGrid, поэтому понял, что это будет относительно прямолинейно. И это была только одна небольшая проблема. Я не могу за свою жизнь получать ссылки на страницы.
Быстрый просмотр результатов:
Результаты показывают, что в этом запросе есть 2086 записей:
Но пейджинговые ссылки не генерируются.
Мой метод действия возвращает JSON через
return Json(new
{
param.sEcho,
iTotalRecords = totalRecords,
iTotalDisplayRecords = filteredContracts.Count(),
aaData = result
},
JsonRequestBehavior.AllowGet);
где
param.sEcho = "1", iTotalRecords = 2086, iTotalDisplayRecords = 25, и aaData - результат массива данных для отображения
Чтобы быть исчерпывающим, он выполняет операцию инициализации данных:
$("#tblToDoItems").dataTable({
'bServerSide': true,
'bProcessing': true,
'sAjaxSource': '/Home/GetContractList',
"bJQueryUI": true,
"bAutoWidth": false,
"bPaginate": true,
"sPaginationType": "full_numbers",
"iDisplayLength": 25,
/* make the first and last columns not sortable */
"aoColumnDefs": [
{ "bSortable": false, "aTargets": [0, -1] }
]
});
Я пропустил некоторые настройки, которые помешали бы DataTables правильно генерировать разбиение на страницы с помощью восстановления данных на стороне сервера?