Я работаю над исправлением ошибки прямо сейчас для приложения на работе, где предыдущий разработчик (с тех пор как ушел) не удосужился разбить результаты данных на страницы, предназначенные специально для вывода результатов данных.
Это, конечно, подняло свою уродливую голову, поскольку пользователи начинают замечать длительные ошибки сценариев в 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 является результатом массива отображаемых данных
Если быть точным, он является оператором инициализации datatable:
$("#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 правильно генерировать разбиение на страницы с помощью извлечения данных на стороне сервера?