Я пытаюсь выучить asp.net rest api и Angular с помощью Kendo UI. все работает хорошо, но я хочу сделать пейджинг на стороне сервера, отправив take и skip в качестве параметра Get в API.
это моя реализация метода get API:
public ResaultPage GetProducts(int skip =1, int take=20)
{
ResaultPage rp = new ResaultPage();
var count= db.Products.Count<Product>();
rp.count = count;
IPagedList<Product> x = db.Products.OrderBy(s =>
s.CategoryID).ToPagedList<Product>(skip, take);
foreach (Product v in x)
{
rp.pr.Add(v);
}
return rp;}
Где класс ResaultPage содержит список Product и правильность подсчета.
Вот моя функция продукта product-service.ts:
getProducts1(skip:any, take:any ): Observable<ResaultPage> {
let params = new URLSearchParams();
params.set('Skip', skip);
params.set('Take', take);
return this.http.get<ResaultPage>(this.productsUrl)
.pipe(
tap(data => console.log(JSON.stringify(data))),
catchError(this.handleError)
);
}
и вот функция обработчиков product-component.ts:
public pageChange(event: PageChangeEvent): void {
this.gridState.skip = event.skip+10;
this.productService.getProducts1(this.gridState.skip,
this.gridState.take).subscribe(
sub => {
this.totalCount=sub.count;
this.products=sub.pr;
console.log(this.products);
});
при запуске приложения я получаю первые 20 записей на той же странице с (1,2) подкачкой
и когда я нажимаю 2, я все равно получаю то же самое.
Мне нужно получить только 10 на страницу, например, а остальные 10 на странице 2.
где правильность Kendo Ui для skip = 1 и для take = 10;