У меня есть существующее веб-приложение, которое в настоящее время использует jqGrid, и весь серверный сервер обращается с разбивкой по страницам на основе номера страницы и длины страницы. Теперь я хочу начать использовать DataTables для некоторых частей, и поскольку в его разбиении на страницы используются начальная запись и длина, я хочу знать, есть ли способ настроить DataTables для принятия номера страницы, поэтому мне не нужно изменять весь мой бэкэнд.Как настроить DataTables для работы с номером страницы, а не с начала записи
Любой способ настроить или, возможно, адаптировать DataTables для этого?
Редактирование: просто, чтобы избежать путаницы, я говорю о DataTables с функциональностью обработки на стороне сервера, а не о разбиении на страницы на стороне клиента.
EDIT 2: добавление некоторого кода того, как мой бэкэнд берет и отвечает на запросы из браузера. Это ASP.NET MVC4.
Мои услуги всегда отвечают страницы данных объекта разрабатывается с с помощью метода так:
Page<T> GetPage<TKey>(int pageNumber,
int pageSize,
Expression<Func<T, TKey>> orderBy,
bool ascending = true,
Expression<Func<T, bool>> predicate = null)
Это возвращает Page<T>
объект вроде этого:
public class Page<T> : IEnumerable<T>
{
private readonly IList<T> _items;
public IList<T> Items
{
get { return _items; }
}
public Page()
{}
public Page(int currentPage, IEnumerable<T> items, int itemsPerPage, int totalItems, int totalPages)
{
PageIndex = currentPage;
_items = items.ToList();
TotalItems = totalItems;
PageSize = itemsPerPage;
TotalPages = totalPages;
}
public int PageIndex { get; private set; }
public int PageSize { get; private set; }
public int TotalItems { get; private set; }
public int TotalPages { get; private set; }
public IEnumerator<T> GetEnumerator()
{
return _items.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
Тогда это анализируется в Json в контроллере, возвращая ответ действия, чтобы соответствовать структуре json, необходимой для плагина grid (тогда как это jqGrid или DataTables).
Я не могу изменить структуру страницы и механику разбиения на страницы, поскольку это сильно повлияет на веб-приложение, так что это не обсуждается. Мне нужно найти способ адаптации DataTables, чтобы он отправил PageNumber вместо Запустите. Параметр Length будет соответствовать PageSize на моей стороне, чтобы он идеально подойдет.
Как выглядит ваш текущий код? Трудно ответить, не зная, какого именно поведения вы хотите добиться. – davidkonrad
Это не что-то о визуальном аспекте таблицы, речь идет о том, как плагин работает за сценой. Прямо сейчас плагин DataTables отправляет на сервер стартовую запись страницы, которую он хочет показать, и количество записей, которые нужно предъявить, затем сервер отвечает соответственно. Я хочу, чтобы DataTables отправлял номер страницы (вместе с количеством записей, которые оставались бы похожими на предыдущие). – CesarD
Да, пожалуйста, добавьте свой код к вопросу. По коду я имею в виду, как вы хотите получить доступ к dataTables с помощью pagenumber, то есть как вы делаете это сейчас с помощью jqGrid. – davidkonrad