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