У меня разбирается пейджинг в серверной части. Я использую следующий код:
public ActionResult GetStockTakeAllWithPagging(int id,int StartNumber , int EndNumber)
{
List<StockTakeAllItems> result = database.GetStockTakeAllWithPagging(id,StartNumber,EndNumber);
return Json(result, JsonRequestBehavior.AllowGet);
}
Я использую этот запрос SQL, и он работает так, как должен, и возвращает правильное количество строк.
select *
from #StockTakeItems sti
order by StocktakeID
offset @StartingRowNumber rows
fetch next @EndingRowNumber -1 rows only
Мой вопрос находится на переднем крае. У меня есть количество элементов, которое нечетно 5000. Я собирался сделать цикл for следующим образом. Но я только хочу, чтобы цикл for обращался к веб-службе каждую тысячузаписи, так сказать, если бы было 7041 записей, хотя было бы легко определить 7000, как бы я работал, чтобы захватить последние 41?
public async void DownloadStockCount (long warehouseId)
{
int count= await restServices.GetStockTakeAllCountForWarehouse(warehouseId);
var realm = Realm.GetInstance();
List<StockTakeAllItems> results = new List<StockTakeAllItems>();
for (int i=0; i < count; i++)
{
results= await restServices.GetStockTakeAllWithPagging(warehouseId, 1, i);
}
await DisplayAlert("Test", $"Count of items for stock count {count.ToString()}", "OK");
}
Это здесь, я хочу отправить 1 - 1000, 1000, 2000и так до тех пор, пока не будут получены все записи.Имейте в виду, я использую веб-API, который фильтрует результаты правильно, мне просто не нужно, как пропустить до конца набора записей.