Параметры запроса кендо пользовательского интерфейса

Я использую kendo ui grid с серверной страницей, фильтрацией и сортировкой. С C# WebAPI, где все параметры сетки, такие как фильтры, сортировки и текущая страница и размер страницы, отправляются в URL через API сетки кендо, и у меня есть DataSourceRequest в моем WebAPI, который может читать все параметры запроса и применять их, пока я возвращаю данные назад из API.

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

У меня есть все свойства сетки, такие как фильтры и сортировки.

к которому я могу получить доступ из источника данных кендогрида

 var query = {
       page: 1,
       pageSize: grid.dataSource.total(),
       sort: grid.dataSource.sort(),
       filter: grid.dataSource.filter()
     }

Мне нужно вызвать тот же API, который я использую для визуализации кендогрида, применяя все фильтры и сортировки. Может ли кто-нибудь помочь мне, как кендо сетки генерирует строку запроса со всеми этими параметрами. так может быть, я могу повторно использовать ту же функцию

http://localhost:3306/api/test/62ca5945e15b0cb85bec257eec8f0bf1/grid?фильтр =stepType~ ~ экв%27Rejected%27& рода =& =& совокупности PAGESIZE =10& страница =2&isFirstLoad= ложно &showColumns= имя%2CtotalScore%2Crank%2CexpirationDate%2CstepName%2C&_=1450310137369

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

1 ответ

Я реализовал это ранее, используя параметр Map с помощью Angular, но я думаю, что это будет очень похоже, когда просто с помощью jQuery. Смотрите этот URL.

Фрагмент моего кода, используя параметр Map

$scope.pageableData = new kendo.data.DataSource({
            type: "aspnetmvc-ajax",
            pageSize: $scope.pageSize,
            serverPaging: true,
            serverFiltering: true,
            serverSorting: true,
            transport: {
                read: {
                    url: $rootScope.projectURL + '/api/DocLibItems/PageableGridItems',
                    dataType: 'json',
                    type: 'post'

                },
                parameterMap: function (data, type) {
                    $scope.pageableGridCreateCache = false;
                    var filter = data.filter === undefined ? null : data.filter;
                    if (filter) {
                        angular.forEach(filter.filters, function (item) {
                            item._operator = item.operator;
                        });
                    }
                    return {
                        ProjectID: $scope.projectID,
                        PageNumber: data.page,
                        PageSize: data.pageSize,
                        Sorting: data.sort === undefined ? null : data.sort,
                        Filtering: filter
                    };
                }
            }
});

ParmeterMap возвращает ProjectID, PageNumber, PageSize, сортировку и фильтрацию. API должен ожидать, чтобы получить эти данные и вернуть данные на основе этого.

Первоначальный вызов вызовет тот же API, где pageNumber будет равен 1, pageSize будет по умолчанию pageSize, сортировка будет нулевой, и фильтрация не будет.

Призыв к API является постом, поэтому в URL не будет никаких параметров.

Другие вопросы по тегам