Angular-Datatables, позволяющий разбивать серверы на страницы

У меня очень большой набор данных, отображаемый с помощью angular-datatables, и я пытаюсь включить разбиение на страницы на стороне сервера с помощью плагина datatables в моем компоненте angular. Вызов API предназначен для базовой службы ASP.NET, которую я также пишу.

Кажется, я не могу найти много документации о том, как это сделать, и я относительно новичок в плагине datatables.

Моя декларация API GET:

public async Task<IActionResult> GetOperations(
   int pageIndex = 0, int pageSize = 50, string query = null)

Это использует pageIndex и pageSize для вызова моей логики разбивки на страницы в репозитории.

Объявление моего компонента datatable такое же, как описано в документации angular-datables angular way: https://l-lin.github.io/angular-datatables/#/basic/angular-way

Должен ли я использовать способ AJAX? Есть ли способ сделать это красиво в angular? Если да, нужно ли что-то конкретное сделать в контроллере API, что могло бы помочь?

Я также не совсем уверен в компоненте пользовательского интерфейса angular-datatables, если вы знаете что-то, что может лучше работать для отображения и редактирования больших наборов данных, не стесняйтесь рекомендовать его.


person Mason Turvey    schedule 28.06.2018    source источник
comment
В примере загружаются все данные и страница, тогда вы должны использовать что-то вроде docs.microsoft.com/en-us/aspnet/mvc/overview/older-versions-1/   -  person Eliseo    schedule 28.06.2018


Ответы (1)


Основная цель здесь - создать модель, которая отражает пост-модель таблиц данных, чтобы ее можно было разрешить позже с помощью привязки модели в вашем контроллере, и да, вам обязательно стоит пойти по пути ajax. Я сделал это недавно, и это сработало как надо.

После этого вы можете написать несколько действий, которые будут использовать вашу модель и соответственно обрабатывать данные.

Итак, ваш контроллер может выглядеть примерно так.

    [HttpPost]
    [Route("GetTableData")]
    public IActionResult GetEmployees([FromBody] DataTablesOptions model)
    {
        var propertyMappings = _propertyMappingService.GetMappings<Employee, EmployeeDto>();
        var employees = _employeeRepository.GetEmployees()
            .ApplySearch(model, propertyMappings)
            .ApplySort(model, propertyMappings)
            .ProjectTo<EmployeeDto>(_mapper.ConfigurationProvider)
            .ToPagedList(model);

        return DataTablesResult(employees);
    }

Пожалуйста, взгляните на мой код, поскольку я недавно реализовал полную обработку на стороне сервера с angular-datatables и asp net core webapi.

Я все еще разрабатываю его, но основное представление для таблицы сотрудников работает, и оно должно дать вам некоторые рекомендации, как это сделать.

https://bitbucket.org/mateusz_kikmunter/generic-angular-service/src/master/

person Matt    schedule 04.10.2018
comment
Спасибо за замечательный замечательный пример приложения. - person Sam; 30.03.2019