Kendo Grid Серверная группировка не работает с OData - PullRequest
0 голосов
/ 05 июля 2018

Попытка заставить группировку на стороне сервера работать с Kendo Grid и OData. У меня немного необычная ситуация: я не хочу использовать JSonP и хотел бы, чтобы конечная точка была в моем контроллере MVC. Затем приложение направит запрос к API с использованием API-интерфейса, сохраненного в конфигурации.

Метод контроллера, показанный ниже:

[HttpGet]
    public ActionResult GetMaintenanceLogs()
    {
        var query = Request.QueryString.ToString();
        var results = proxy.GetMaintenanceLogs(query);
        results.AggregateResults = new List<Kendo.Mvc.Infrastructure.AggregateResult>();
        return Json(results); 
    }

Конфигурация сетки, представленная ниже:

@(Html.Kendo().Grid<FirstStrike.Maintenance.Services.Models.MaintenanceLog>()
    .Name("maintenanceLogGrid")
    .DataSource(dataSource => dataSource
        .Custom()
        .Type("odata")
        .Transport(t => t.Read(r => r.Url("/History/GetMaintenanceLogs").Type(HttpVerbs.Get).DataType("json")))
        .Schema(a => a.Model(b =>
        {
            b.Id(c => c.MaintenanceLogId);
            b.Field("MaintenanceLogDate", typeof(DateTime));
            b.Field("MaintenanceTaskDesc", typeof(String));
            b.Field("MaintenanceUserName", typeof(String));
            b.Field("MaintenanceTaskParams", typeof(String));
        })
        .Data("Data")
        .Total("Total"))
        .ServerAggregates(true)
        .ServerSorting(true)
        .ServerPaging(true)
        .ServerFiltering(true)
        .PageSize(10)
    )

и т.д ...

Метод прокси, показанный ниже:

 public DataSourceResult GetMaintenanceLogs(String query)
    {
        var service = ServiceHelper.GetODataClaimService();
        var url = service.MaintenanceLogs.ToString();
        var qor = service.ExecuteSync<MaintenanceLog>(url + query);
        return new DataSourceResult() { Data = qor.ToList(), Total = Convert.ToInt32(qor.TotalCount) };
    }

Проблема, с которой я сталкиваюсь, заключается в том, что все работает идеально. Запрос выполняет и извлекает 10 записей и общее количество. Затем данные передаются обратно клиенту, где я получаю сообщение об ошибке JavaScript.

Ошибка видна ниже:

не может прочитать свойство 'length' неопределенной сетки кендо

Что мне здесь не хватает. Ожидаемый результат отличается от того, что я отправляю? Ожидается ли ответ OData? Данные и итоги игнорируются в HTML Helper при использовании OData. Любая помощь с благодарностью ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...