PagedList MVC для получения данных из базы данных на основе размера страницы
Я добавил PagedList в свой проект, у меня есть окно поиска, которое в основном вызывает функцию для получения значений из базы данных, мой Pagedlist работает нормально, но я не уверен, получает ли он все данные из базы данных или только на основе pageSize. Например, у меня есть всего 30 записей, и я добавил размер страницы как 10, так что просмотр покажет 10 записей одновременно и 3 страницы. Теперь этот PagedList получит все 30 значений или только 10 впервые, а затем, если пользователь нажмет на страницу 2, он получит следующие 10 записей.
Допустим, у меня есть тысяча записей, поэтому я не хочу, чтобы система загружала их все, я просто хочу загрузить их в соответствии с размером страницы, и когда пользователь нажимает на вторую страницу, он получает следующие записи, надеюсь, моя точка зрения ясна, ниже моя код:
Посмотреть:
@model PagedList.IPagedList<BackendIntegration.Models.VendorAllTransactions>
@using PagedList.Mvc;
@if (Model != null)
{
<hr />
<div class="form-horizontal">
<table class="table">
<tr class="bg-primary">
<th>
@Html.DisplayName("Date")
</th>
<th>
@Html.DisplayName("Type")
</th>
<th>
@Html.DisplayName("Amount")
</th>
<th>
@Html.DisplayName("User Name")
</th>
<th>
@Html.DisplayName("Vendor Name")
</th>
<th>
@Html.DisplayName("POS ID")
</th>
</tr>
@foreach (var trans in Model)
{
<tr>
<td>
@Html.DisplayFor(model => trans.Date)
</td>
<td>
@Html.DisplayFor(model => trans.TypeDesc)
</td>
<td>
@Html.DisplayFor(model => trans.Amount)
</td>
<td>
@Html.DisplayFor(model => trans.UserName)
</td>
<td>
@Html.DisplayFor(model => trans.VendorName)
</td>
<td>
@Html.DisplayFor(model => trans.POS_ID)
</td>
</tr>
}
</table>
<br />
<div id='Paging' style="text-align: center">
Page @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber)
of @Model.PageCount
@Html.PagedListPager(Model, page => Url.Action("VendorAllTransactions", new { page }))
</div>
</div>
}
контроллер:
public ActionResult VendorAllTransactions(VendorAllTransactionView vw, int? page)
{
int pageSize = 10;
int pageIndex = 1;
pageIndex = page.HasValue ? Convert.ToInt32(page) : 1;
IPagedList<VendorAllTransactions> model = null;
try
{
model = sales.VendorAllTransactions(vw).ToPagedList(pageIndex, pageSize);
}
catch (Exception exp)
{
ModelState.AddModelError("", exp.Message);
}
return View(model);
}
sales.VendorAllTransactions(vw)
это вызов функции с запросом, который будет возвращать записи. Но это явно возвращение всех записей. Pagedlist получает только необходимое количество строк (размер страницы) или получает все.???
Пожалуйста, порекомендуйте. Спасибо