Базовый веб-сервис OD.NET ASP.NET, Angular 5 и Grid Component в пользовательском интерфейсе Kendo для Angular - PullRequest
0 голосов
/ 19 октября 2018

Хотелось бы узнать, есть ли простой способ привязать Kendo Angular Grid к контроллеру ASP.NET Core OData.Что я подразумеваю под лёгким?

Что ж, в пользовательском интерфейсе Kendo для jQuery все, что нам нужно сделать, это указать свойства 'type' и 'transport' в объекте DataSource;ссылка: https://demos.telerik.com/kendo-ui/grid/odatav4

То же самое относится к Kendo для ASP.NET MVC;ссылка: https://demos.telerik.com/aspnet-mvc/grid/odata

Однако я думаю, что я уже прошел всю документацию и не могу найти способ привязать службу OData к Kendo Angular Grid аналогичным образом.

Эта страницасодержит некоторую информацию о связывании данных сетки: https://www.telerik.com/kendo-angular-ui/components/grid/data-binding/ ... однако файл 'northwind.service.ts', который предоставляет класс ProductService, содержит два метода, и похоже, что они выполняют своего рода «жестко закодированную» фильтрацию OData.

На странице «Интеграция с пользовательским интерфейсом для ASP.NET Core» (https://www.telerik.com/kendo-angular-ui/components/dataquery/mvc-integration/) есть ссылка на этот проект: https://github.com/telerik/kendo-angular-demo-aspnetcore-data/tree/master, однако ASP.NET Core Controller, который служитbackend не основан на ODataController и вместо этого возвращает JsonResult. Возможно, есть способ изменить реализацию backend, однако я не уверен, что все будет работать правильно, используя предоставленный код на стороне клиента.

Я также нашел это репозиторий GitHub: https://github.com/urfnet/URF.Core.Sample, что выглядит очень многообещающе, есть специальный «сервис», который, кажется, обрабатывает все http-действия (GET, POST, PUT ..)и выглядит очень «многоразовым».

Я что-то упустил или нет простого способа?Действительно ли мне нужно написать свой собственный сервис для обработки связи Kendo Angular Grid и ASP.NET Core Odata?

(я использую ASP.NET Core 2, Angular 5, последний пользовательский интерфейс Kendo для пакетов Angular и ODataкоторый описан в этой статье: https://blogs.msdn.microsoft.com/odatateam/2018/07/03/asp-net-core-odata-now-available/)

1 Ответ

0 голосов
/ 19 октября 2018

Пользовательский интерфейс Kendo для Angular Grid не зависит от того, откуда берутся его данные, и использует события, содержащие необходимую информацию для обработки данных (или выполнения удаленного HTTP-запроса):

DOCS

Примеры , которые взаимодействуют с образцом бэкэнда OData , также используют вспомогательную функцию Data Query toODataString , которая преобразует состояние входящей сетки в OData4-совместимую строку.

Вы можете либо создать службу данных, которая будет получать состояние Grid и обрабатывать удаленные HTTP-запросы и ответы (которые в конечном итоге будут использоваться Grid), либо создать собственную директиву автоматической привязки, которая будет абстрагироваться.все операции с данными, например:

ПРИМЕР с пошаговыми инструкциями

...