Параметры запроса кендо пользовательского интерфейса
Я использую 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 не будет никаких параметров.